diff options
| author | Loic Guegan <manzerberdes@gmx.com> | 2019-04-12 13:52:06 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerberdes@gmx.com> | 2019-04-12 13:52:06 +0200 |
| commit | 927283437161307a23a954b42297412ba03a619c (patch) | |
| tree | 38c0abc5ae8df4edd428b3662d733882d76ebdf3 /ns3-simulator/modules/energy.cc | |
| parent | 23e8f7f688da3df8d5b4d47e881865717141325c (diff) | |
Init final simulator source
Diffstat (limited to 'ns3-simulator/modules/energy.cc')
| -rw-r--r-- | ns3-simulator/modules/energy.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ns3-simulator/modules/energy.cc b/ns3-simulator/modules/energy.cc new file mode 100644 index 0000000..b07c835 --- /dev/null +++ b/ns3-simulator/modules/energy.cc @@ -0,0 +1,51 @@ + +#include "modules.hpp" + +void setupEnergy(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<BasicEnergySource> basicSourcePtr0 = DynamicCast<BasicEnergySource> (wifiEdgeNodesSources.Get (0)); + + // //basicSourcePtr0->TraceConnectWithoutContext ("RemainingEnergy", MakeCallback (&RemainingEnergy)); + // //device energy model + + // Ptr<DeviceEnergyModel> basicRadioModelPtr0 = + // basicSourcePtr0->FindDeviceEnergyModels ("ns3::WifiRadioEnergyModel").Get (0); + + // NS_ASSERT (basicRadioModelPtr0 != NULL); + // basicRadioModelPtr0->TraceConnectWithoutContext ("TotalEnergyConsumption", MakeCallback (&TotalEnergy)); + + +} + |
