Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
call_box_manager.h
00001 #ifndef __CALL_BOX_MANAGER_H__ 00002 #define __CALL_BOX_MANAGER_H__ 00003 00004 #include "vector.h" 00005 #include "call_box.h" 00006 #include <stdlib.h> 00007 #include "parallelcpld.h" 00008 #include "utils.h" 00009 #include "ring_buffer.h" 00010 00011 %: include "shared_variables.h" 00012 00013 const uint8_t __SLEEP_TIME__ = 45; 00014 00015 extern Timer timer_refresh; 00016 extern Timer timer_aging; 00017 extern Timer timer_sync_refresh; 00018 00019 const uint8_t TIME_TO_REFRESH = 1; 00020 const uint8_t TIME_TO_WAKE_UP = 2; 00021 00022 /** 00023 * @Synopsis Busca por um determinado Call_box no vetor de Call_box usando como chave de busca o ramal. 00024 * 00025 * @param v_cb O vetor contendo todos os Call_box conhecidos pela Header em determinado momento. 00026 * @param ext O ramal pelo qual se irá buscar o CBx. 00027 * 00028 * @return NULL caso não tenha sido encontrado nenhum CBx com esse ramal; retorna um ponteiro para o Call_box que possui esse ramal, 00029 * caso o mesmo tenha sido encontrado. 00030 * 00031 * Exemplo: 00032 * @code 00033 * ... 00034 * Vector * v_cb = new Vector(); 00035 * //assumindo que esse vetor de Call_Box já foi populado. 00036 * int ext = 5218; 00037 * Call_Box * cb = find_CB( v_cb, ext ); 00038 * ... 00039 * @endcode 00040 */ 00041 Call_Box * find_CB ( Vector * v_cb, const int ext ); 00042 00043 /** 00044 * @Synopsis Função responsavel por "envelhecer" os registros na Header, na prática, é essa função que pergunta de tempo 00045 * em tempo se o CBx ainda continua ativo; Essa função também é responsavel por remover o CBx do v_cb assim como deletar o elemento cb 00046 * assossiado. 00047 * 00048 * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento. 00049 * @param data Usado para a criação do pacote de "ping" que a Header irá enviar para o CBx. 00050 * @param write_buffer Local de memória onde efetivamente irá ser montado o pacote para envio ao CBx do pacote de "ping" ( Registry ). 00051 * 00052 * Exemplo: 00053 * @code 00054 * ... 00055 * Vector * v_cb = new Vector(); 00056 * //assumindo que esse vetor de Call_Box já foi populado. 00057 * uint8_t buffer[ 300 ]; 00058 * uint8_t write_buffer[ 300 ]; 00059 * registry_aging( v_cb, buffer, write_buffer ); 00060 * ... 00061 * @endcode 00062 */ 00063 00064 int refresh ( Vector * v_cb ); 00065 00066 inline int init_refresh () 00067 { 00068 timer_refresh.start(); 00069 return ( 0 ); 00070 } 00071 00072 inline int init_sync_refresh () 00073 { 00074 timer_sync_refresh.start(); 00075 return ( 0 ); 00076 } 00077 00078 void wake_all_up ( Vector * v_cb ); 00079 00080 #endif
Generated on Tue Jul 12 2022 16:25:02 by
