Beruflich Dokumente
Kultur Dokumente
*__________________________________________________________________________________
____________________________________/
+
+
+ Estudio de Energìa Remanente en un Escenario Ad-Hoc
+
+
+
+
+__________________________________________________________________________________
_____________________________________+
*/
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/mobility-module.h"
#include "ns3/config-store-module.h"
#include "ns3/wifi-module.h"
#include "ns3/internet-module.h"
#include "ns3/olsr-helper.h"
#include "ns3/ipv4-static-routing-helper.h"
#include "ns3/ipv4-list-routing-helper.h"
#include "ns3/netanim-module.h"
#include "ns3/energy-module.h"
#include "ns3/applications-module.h"
#include "ns3/application.h"
#include "ns3/onoff-application.h"
#include "ns3/object-factory.h"
#include "ns3/evalvid-client-server-helper.h"
#include "ns3/evalvid-client.h"
#include "ns3/evalvid-server.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
EnergySourceContainer::Iterator i;
double frac;
double frac_Energy;
double med_Energy;
int id;
double tiempo = Now ().GetSeconds ();
string direccion = "/home/pablo/Documentos/ns-allinone-3.29/ns-
3.29/trafic2.txt";
string num = "";
string direcion1 = "";
/
*__________________________________________________________________________________
______
+ +
+ +
+ Int main / LogComponentEnable / Variables
+
+ +
+
___________________________________________________________________________________
_____+
*/
{
//++++++++Logs se pueden habilitar para analizar los mensajes que genera el
simulador en cada módulo +++++++++
/
*__________________________________________________________________________________
______
+ +
+ +
+ CommandLine cmd / Calculo Variables
+
+ +
+
___________________________________________________________________________________
_____+
*/
CommandLine cmd;
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuraciòn de Nodos Ad-Hoc +
+ +
+
___________________________________________________________________________________
_____+
*/
NodeContainer AdHocNode;
AdHocNode.Create (numNodes);
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración de Canal Inalàmbrico (Phy Layer)
+
+ +
+
___________________________________________________________________________________
_____+
*/
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración de Capa MAC +
+ +
+
___________________________________________________________________________________
_____+
*/
WifiHelper Wifi;
Wifi.SetStandard (WIFI_PHY_STANDARD_80211n_2_4GHZ);
WifiMacHelper WifiMac;
WifiMac.SetType ("ns3::AdhocWifiMac");
Wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
"DataMode",StringValue (phyMode),
"ControlMode",StringValue (phyMode));
WifiDevices = Wifi.Install (WifiPhy, WifiMac, AdHocNode);
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración de Movilidad Nodos +
+ +
+
___________________________________________________________________________________
_____+
*/
MobilityHelper Mobility;
Mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
Mobility.Install (AdHocNode);
uint32_t nodo=0;
double posx=0;
double posy=0;
for(nodo=0;nodo<=numNodes-1; nodo=nodo+1){
AnimationInterface::SetConstantPosition (AdHocNode.Get (nodo), posx, posy);
posx=posx+20;
}
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración Protocolo de Enrutamiento OLSR
+
+ +
+
___________________________________________________________________________________
_____+
*/
OlsrHelper olsr;
Ipv4StaticRoutingHelper staticRouting;
Ipv4ListRoutingHelper list;
list.Add (staticRouting, 0);
list.Add (olsr, 10);
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración Capa de Red:Direccionamiento IP
+
+ +
+
___________________________________________________________________________________
_____+
*/
InternetStackHelper internet;
internet.SetRoutingHelper (list); // => has effect on the next Install ()
internet.Install (AdHocNode);
Ipv4AddressHelper ipv4;
NS_LOG_INFO ("Assign IP Addresses.");
ipv4.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer i = ipv4.Assign (WifiDevices);
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración Capa Aplicaciones: Video_Evalvid Traza
+
+ +
+
___________________________________________________________________________________
_____+
*/
NS_LOG_INFO ("Create Applications.");
int NumApp=180;//Número de Aplicaciones o veces que se envia el Video
int duracion=10;//duración de un video
int inicio=11;//inicio del video
int Interval_App=3;
int App=0;
uint16_t port = 4000;
ApplicationContainer apps[NumApp];
for(App=0;App<NumApp;App++)
{
// Create one udpServer applications on node one.
port=port+1;
inicio=inicio+Interval_App;
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración Parámetros de Energía +
+ +
+
___________________________________________________________________________________
_____+
*/
WifiRadioEnergyModelHelper radioEnergyHelper;
/*Se especifican los valores de consumo de una tarjeta real, en este caso de la
tarjeta Intel Wireless3945ABG*/
//---------------------------------------------------------------------------------
-----
double medicion=0;
for(medicion=0;medicion<=stop_simulacion;medicion=medicion+60)//intevalos en que
se imprimira
{
Simulator::Schedule(Seconds(medicion), &PrintEnergy, sources);
}
//---------------------------------------------------------------------------------
-----
/
*__________________________________________________________________________________
______
+ +
+ +
+ Configuración Archivos: Trazas, Animación, Tablas de Enrutamiento
+
+ +
+
___________________________________________________________________________________
_____+
*/
if (tracing == true)
{
AsciiTraceHelper ascii;
WifiPhy.EnableAsciiAll (ascii.CreateFileStream ("Energy_Video.tr"));
WifiPhy.EnablePcap ("Energy_Video", WifiDevices);
Simulator::Destroy ();
NS_LOG_INFO ("Done.");
return 0;
}