summaryrefslogtreecommitdiff
path: root/ns3-simulations/ns3-simulator/main.cc
blob: 0e4e0f95280854a14d4fc359dfe3792a4b23642f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "modules/modules.hpp"

NS_LOG_COMPONENT_DEFINE ("WIFISensorsSimulator");


/**
 * To get more details about functions please have a look at modules/modules.hpp
 */
int main(int argc, char* argv[]){

  uint32_t sensorsFrequency=1;
  uint32_t sensorsPktSize=150;
  uint32_t sensorsNumber=2;
  uint32_t nbHop=5;
  uint32_t linksBandwidth=5;
  uint32_t linksLatency=2;

  CommandLine cmd;
  cmd.AddValue ("sensorsSendInterval", "Number of sensors measurement per second", sensorsFrequency);
  cmd.AddValue ("sensorsPktSize", "Sensors packet size (bytes)", sensorsPktSize);
  cmd.AddValue ("sensorsNumber", "Number of sensors connected to AP", sensorsNumber);
  cmd.AddValue ("nbHop", "Number of hop between AP and Cloud", sensorsNumber);
  cmd.AddValue ("linksBandwidth", "Links bandwidth between AP and Cloud", linksBandwidth);
  cmd.AddValue ("linksLatency", "Links latency between AP and Cloud", linksLatency);
  cmd.Parse (argc, argv);

  //LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
  //LogComponentEnable("PacketSink", LOG_LEVEL_INFO);

  // ---------- Setup Simulations ----------
  CloudInfos cloud=createCloud(nbHop,linksBandwidth,linksLatency); // Create cloud P2P node chain o--o--o--o--o
  setupCloudEnergy(cloud); // DO IT JUST AFTER createCloud !!!!! Otherwise you will be in trouble
  Cell cell=createCell(sensorsNumber,cloud.first.Get(0)); // Use first cloud node as Access Point
  setupScenario(cell,cloud,sensorsPktSize,sensorsFrequency); // Send data from Sensors to Cloud
  setupCellEnergy(cell);
  
  // Don't forget the following
  Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
  
  // Run Simulations
  Simulator::Stop (Seconds (20));
  Simulator::Run ();
  Simulator::Destroy ();

  return(0);
}