00001 00002 // PROYECTO FIN DE CARRERA // 00003 // TITULO: Disenyo de nuevas arquitecturas y algoritmos de gestión de recursos en // 00004 // redes de acceso FiWi // 00005 // AUTOR: Ana Emma Lopez Mato // 00006 // TUTOR: Noemi Merayo Alvarez // 00007 // INGENIERIA TECNICA DE TELECOMUNICACIONES, SISTEMAS DE TELECOMUNICACION // 00008 // UNIVERSIDAD DE VALLADOLID // 00010 00011 #ifndef __RED_WIRELESS_SISTQUEUE_H_ 00012 #define __RED_WIRELESS_SISTQUEUE_H_ 00013 00014 #include <omnetpp.h> 00015 #include <vector> 00016 #include "analysis.h" 00017 #include "GATE_m.h" 00018 #include "REPORT_m.h" 00019 #include "ETHERNET_m.h" 00020 #include "DATA_m.h" 00021 #include <string.h> 00022 #include <stdio.h> 00023 #include <math.h> 00024 /* 00025 * MODULO ONU_SISTqueue: 00026 */ 00027 //DEFINIMOS LOS TIPOS DE std DE LOS VECTORES: 00028 typedef std::vector<int> int_vector_t; // VECTOR DE TIPO ENTERO 00029 typedef std::vector<double> double_vector_t; // VECTOR DE TIPO DOUBLE 00030 00031 class ONU_SISTqueue : public cSimpleModule 00032 { 00033 private: 00034 Analysis carga; 00035 FILE * bytes_recibidos_onu; 00036 FILE * carga_colas; 00037 FILE * retardo_red_wireless; 00038 FILE * media_longitud_saltos_wireless; 00039 00040 public: 00041 Analysis retardo; 00042 Analysis longitud; 00043 Analysis saltos; 00044 cQueue queue; // CREAMOS UNA COLA LLAMADA queue 00045 int_vector_t tamqueue; // VECTOR QUE INDICA EL TAMANYO DE LA COLA 00046 long tamqueuepop; // VARIABLE DEL TAMANYO DE LOS PAQUETES QUE BORRAMOS DE LAS COLAS 00047 long tamqueueextract; // VARIABLE DEL TAMANYO DE LOS PAQUETES QUE CHEQUEAMOS ANTES DE SACARLOS DE LAS COLAS 00048 long tamextract; // VARIABLE DEL TAMANYO DE LOS PAQUETES QUE EXTRAEMOS DE LAS COLAS 00049 00050 long int paquetes_recibidos; 00051 double bytes_recibidos; 00052 int isGateway; 00053 int num_colas; 00054 double carga_cola; 00055 00056 virtual void handleMessage(cMessage *msg); 00057 virtual void initialize(); 00058 virtual void finish(); 00059 00060 void deleteelement(cMessage *msg); // FUNCION PARA ELIMINAR LOS PAQUETES DEL PRINCIPIO DE LAS COLAS 00061 00062 void checkpacket(); // FUNCION PARA CHUEQUEAR LOS PAQUETES DEL PRINCIPIO DE LA COLA PARA SABER SU TAMANYO EN BYTES 00063 void extractionelement(int); // FUNCION PARA EXTRAER LOS PAQUETES DEL PRINCIPIO DE LAS COLAS 00064 00065 virtual ETHERNETmsg * WirelessToOptical(cMessage * msg); 00066 virtual void volcadoFicheros(); 00067 int volcado; 00068 int contador; 00069 virtual void insertPacket(cMessage *msg); 00070 long total_bytes; 00071 simtime_t delay_packets; 00072 int_vector_t indices_gw_onu; 00073 int aux_counter; 00074 int full_onus_gw; 00075 double_vector_t max_control_admision; 00076 }; 00077 00078 #endif