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 #include "ONU_Table.h" 00012 #include <vector> 00013 #include "GATE_m.h" 00014 #include "REPORT_m.h" 00015 #include "ETHERNET_m.h" 00016 /* 00017 * MODULO ONU_Table: 00018 */ 00019 Define_Module(ONU_Table); 00020 00022 //FUNCION INITIALIZE()--> ESTA FUNCION SE INVOCA DESPUES DE QUE OMNET++ HA PUESTO EN MARCHA LA RED, EN LA CUAL SE LEEN LOS // 00023 // PARAMETROS DEL MODULO Y SE INICIALIZAN TODAS DAS LAS VARIABLES DECLARADAS PARA ESTE MODULO SIMPLE, SE // 00024 // ASIGNAN ESTRUCTURAS DE DATOS DINAMICOS Y SE ASIGNAN E INICIALIZAN LOS AUTOMENSAJES SI SON NECESARIOS // 00025 // PARA EL FUNCIONAMIENTO DE ESTE MODULO. // 00027 int ONU_Table::numInitStages() const{return 1;} 00028 00030 //FUNCION INITIALIZE()--> ESTA FUNCION SE INVOCA DESPUES DE QUE OMNET++ HA PUESTO EN MARCHA LA RED, EN LA CUAL SE INICIALIZAN // 00031 // TODAS LAS VARIABLES DECLARADAS PARA ESTE MODULO SIMPLE, AL IGUAL QUE SE CREAN LOS AUTOMENSAJES // 00032 // NECESARIOS PARA EL FUNCIONAMIENTO DE ESTE MODULO. // 00033 // LA FUNCION INITIALIZE(INT STAGE) SE UTILIZA PARA INICIALIZAR VARIAS ETAPAS SEGUN EL VALOR STAGE. // 00035 void ONU_Table::initialize(int stage) 00036 { 00037 // VARIABLES 00038 int file = (int)par("numqueue"); // VARIABLE QUE INDICA EL NUMERO DE FILAS DE LA TABLA DEL MODULO OLT_TABLE 00039 00040 if(stage==0) 00041 { 00042 // RESERVAMOS DE FORMA DINAMICA EL TAMANYO DE LA TABLA E INICIALIZAMOS A 0 00043 table_onu_gate.resize(file,0); 00044 table_onu_gate_time.resize(2,0); 00045 bw_asignado=0; 00046 } 00047 00048 } 00049 00051 //FUNCION HANDLEMESSAGE(CMESSAGE *MSG)--> ESTA FUNCION SE INVOCA CON EL MENSAJE COMO PARAMETRO CADA VEZ QUE EL MODULO RECIBE UN // 00052 // UN MENSAJE O PAQUETE. SE RECORRE EL CODIGO IMPLEMENTADO PARA DEVOLVER UN VALOR O // 00053 // EJECUTAR UNA FUNCION DENTRO DEL MODULO SIMPLE. EL TIEMPO DE SIMULACION NO TRANSCURRE // 00054 // DENTRO DE LA LLAMADA DE LA FUNCION HANDLEMESSAGE(CMESSAGE *MSG) MIENTRAS RECORRE EL // 00055 // CODIGO IMPLEMENTADO. // // 00057 void ONU_Table::handleMessage(cMessage *msg) 00058 { 00059 }