![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: utils.h
- Revision:
- 74:81c47fff88a5
- Parent:
- 72:895ca792c647
- Child:
- 78:1353744f01e1
--- a/utils.h Wed Nov 19 14:06:13 2014 +0000 +++ b/utils.h Mon Nov 24 16:43:16 2014 +0000 @@ -9,36 +9,13 @@ #ifndef __UTILS_H__ #define __UTILS_H__ -#include <iostream> -#include <string.h> -#include "debug.h" +#include <iostream> // need for swap #include "mbed.h" -#include "EthernetInterface.h" -#include "vz_protocol.h" -#include "vector.h" -#include "sip.h" -#include "call.h" -#include "call_box.h" -#include "timeslice.h" -#include "parallelcpld.h" -#include "prompt.h" -#include "configs.h" -#include "ring_buffer.h" - -extern uint8_t cb_tx_buffer[ __CB_BUFFER_SIZE__ ]; -///< Armazena o ultimo pacote enviado para os CBx - -extern ring_buffer * rb; +#include "shared_variables.h" +#include "debug.h" using namespace std; -extern DigitalOut led1; -extern DigitalOut led2; -extern DigitalOut led3; -extern DigitalOut led4; -extern EthernetInterface eth; -extern UDPSocket t_sock; -extern Endpoint t_server; #define set_status(a,b) _set_status(a,b) #define _set_status(a,b){ \ if( a != b ) if( debug_sip )debug_msg("Anterior %d -- Atual %d", a, b ); \ @@ -95,83 +72,6 @@ void reset_leds( void ); /** - * @Synopsis Responsavel por inicializar as configurações iniciais de conexão eth - * - * @return 0 ( zero ) caso tenha uma execução bem sucedida, um numero negativo, caso contrário. - * - * Exemplo: - * @code - * ... - * int eth_status = __init_eth__(); - * ... - * @endcode - */ -int __init_eth__( void ); - -/** - * @Synopsis Busca por um determinado Call_box no vetor de Call_box usando como chave de busca o ramal. - * - * @param v_cb O vetor contendo todos os Call_box conhecidos pela Header em determinado momento. - * @param ext O ramal pelo qual se irá buscar o CBx. - * - * @return NULL caso não tenha sido encontrado nenhum CBx com esse ramal; retorna um ponteiro para o Call_box que possui esse ramal, - * caso o mesmo tenha sido encontrado. - * - * Exemplo: - * @code - * ... - * Vector * v_cb = new Vector(); - * //assumindo que esse vetor de Call_Box já foi populado. - * int ext = 5218; - * Call_Box * cb = __find_CB__( v_cb, ext ); - * ... - * @endcode - */ -Call_Box * __find_CB__( Vector * v_cb, int ext ); - -/** - * @Synopsis Busca por uma determinada ligação vz_call no vetor de v_calusando como chave de busca o ramal. - * - * @param v_call Um vetor contendo todas as vz_calls em andamento em um dado momento. - * @param ext O ramal pelo qual se irá buscar a vz_call. - * - * @return NULL, caso essa chamada não tenha sido encontrada; um ponteiro para esta chamada, caso a mesma tenha sido encontrada. - * - * Exemplo: - * @code - * ... - * Vector * v_call = new Vector(); - * //assumindo que esse vetor de VZ_call já foi populado. - * int ext = 5218; - * VZ_call * call = __find_Call__( v_call, ext ); - * ... - * @endcode - */ -VZ_call * __find_Call__( Vector * v_call, int ext ); - -/** - * @Synopsis Função responsavel por "envelhecer" os registros na Header, na prática, é essa função que pergunta de tempo - * 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 - * assossiado. - * - * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento. - * @param data Usado para a criação do pacote de "ping" que a Header irá enviar para o CBx. - * @param write_buffer Local de memória onde efetivamente irá ser montado o pacote para envio ao CBx do pacote de "ping" ( Registry ). - * - * Exemplo: - * @code - * ... - * Vector * v_cb = new Vector(); - * //assumindo que esse vetor de Call_Box já foi populado. - * uint8_t buffer[ 300 ]; - * uint8_t write_buffer[ 300 ]; - * registry_aging( v_cb, buffer, write_buffer ); - * ... - * @endcode - */ -void registry_aging( Vector * v_cb, uint8_t * data, uint8_t * write_buffer ); - -/** * @Synopsis Responsavel por escutar a porta de conexão com o servidor, verificando se o mesmo mandou algum dado. * * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento. @@ -193,68 +93,6 @@ * ... * @endcode */ -int sip_manager( Vector * v_cb ); - -/** - * @Synopsis Responsável por remover calls por timeout. - * - * @param v_call Um vetor contendo todas as vz_calls em andamento em um dado momento. - * @param v_cb Um vetor contendo todos os Call_box conhecidos pela Header em um determinado momento. - * @param data Usado para a criação do pacote de "ping" que a Header irá enviar para o CBx. - * @param write_buffer Local de memória onde efetivamente irá ser montado o pacote para envio ao CBx. - * @param ts O timeslice que será possivelmente devolvido. - * - * Exemplo: - * @code - * ... - * Vector * v_call = new Vector(); - * Vector * v_cb = new Vector(); - * // assumindo que os vetores já foram populados. - * uint8_t buffer[ 300 ]; - * uint8_t write_buffer[ 300 ]; - * Timeslice * ts = new Timeslice(); - * ... - * call_manager( v_call, v_cb, buffer, write_buffer, ts ); - * ... - * @endcode - */ -void call_manager( Vector * v_call, Vector * v_cb, uint8_t * data, uint8_t * write_buffer, Timeslice * ts ); - -/** - * @Synopsis Responsavel por formatar e enviar o pacote de telemetria para o servidor de interesse. - * - * @param ext Ramal do CBx emissor do pacote de telemetria. - * @param port Porta do CBx emissor do pacote de telemetria. - * @param data Vetor contendo os dados de telemetria em si. - * - * Exemplo: - * @code - * ... - * ext = 5160; - * port = 5060; - * //assumindo que data_from_cb contém os dados vindos do Call_box. - * build_telemetry_report( ext, port, ( char * )data_from_cb ); - * ... - * @endcode - */ -void build_telemetry_report( int ext, int port, char * data ); - -/** - * @Synopsis Executa chamada para chamada de baixo nivel send2callboxes para efetivamente enviar os dados para o CBx. - * - * @param buffer O pacote VZ que será enviado para os CBx. - * - * Exemplo: - * @code - * ... - * //assumindo que o pacote já foi montado em pkg. - * __send_to_cb__( pkg ); - * ... - * @endcode - */ -void __send_to_cb__( uint8_t * buffer ); - -void tx_buffer_ring_buffer_handler( void ); /** * @Synopsis Função usada na ordenação dos CBx para exibição no comando "ls" @@ -277,14 +115,26 @@ int ls_comp( const void * a, const void * b ); /** - * @Synopsis Efetivamente inicializa a conexão UDP com o server. + * @Synopsis Função que converte o ramal para a porta, por definição de projeto, cara ramo possui o numero da centena incremental + * permanecendo o resto igual, por exemplo no ramo pilo os ramais são 5000, 5001 -- no lote 1 5100, 5101 -- porem a porta sempre + * se manteve a mesma, o CBx esta configurado como ramal 5000 e porta 5000, assim como o ramal 5100 e porta 5000, em outras palavras + * dado um ramal, calcular a porta é o mesmo que eliminar a centena do numero. + * + * @param ext O ramal do qual se quer calcular a porta vinculada. + * + * @return O valor calculado da porta. + * + * Exemplo: + * @code + * ... + * int ext = 5220; + * int port = convert_ext_to_port( ext ); + * ... + * @endcode */ -void init_telemetry_handler( void ); - +int convert_ext_to_port( int ext ); -/** - * @Synopsis Fecha e abre novamente a conexão UDP com o server - */ -void re_start_telemetry( void ); - +void xstrcpy( uint8_t * dest, const uint8_t * src); +void xmemcpy( uint8_t * dest, uint8_t * src, uint16_t size); +void xmemcpy32(uint32_t * dest, uint32_t * src, uint16_t size); #endif \ No newline at end of file