Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: vz_protocol.h
- Revision:
- 121:ee02790d00b7
- Parent:
- 119:ee6a53069455
- Child:
- 122:480c44b0e205
diff -r 770f00554b1e -r ee02790d00b7 vz_protocol.h --- a/vz_protocol.h Mon May 04 17:25:29 2015 +0000 +++ b/vz_protocol.h Fri May 08 04:15:23 2015 +0000 @@ -9,42 +9,43 @@ #ifndef __VZ_PROTOCOL_H__ #define __VZ_PROTOCOL_H__ +#include "EthernetInterface.h" +#include "mbed.h" +#include <string.h> #include <stdlib.h> #include <stdint.h> -#include <string.h> -#include <time.h> -#include "utils.h" // for xmemcpy +#include "debug.h" #include "bits.h" #include "clock.h" -#include "debug.h" +#include "utils.h" const uint16_t SHIFT_PORT = 3000; +///< Deslocamento padrão de porta, usado na forma <ext recebido + SHIFT_PORT> const uint8_t MIN_EXT = 1; +///< Define o valor minimo de ramal que sera processado. + extern int begin; +///< Registra o numero do menor ramal conhecido pela header até o momento const uint16_t MAX_EXT = 5999; -extern int end; +///< Define o valor máximo de ramal que sera processado. -const uint16_t UDP_PORT_LISTENER = 11406; -///< Porta UDP na qual a Header espera por eventuais mensagens. -const uint16_t TCP_PORT_LISTENER = 7879; -///< Porta TCP na qual a Header espera por eventuais mensagens. -const uint16_t UDP_BOOTLOADER_PORT = 9891; -///< Porta UDP para tratativas do procedimento de gravação dos CBx. +extern int end; +///< Registra o numero do maior ramal conhecido pela header até o momento const uint8_t VZ_HEADER_OFFSET = 7; ///< Indica o inicio dos dados recebidos efetivamente no pacote VZ. -const uint16_t CB_BUFFER_SIZE = 300; -///< Indica o numero máximo de bytes recebidos ( por pacote ) do CBx. -const uint16_t PROMPT_ETH_BUFFER_SIZE = 1024; -///< Representa o tamanho máximo do pacote recebido pelo prompt da Header. + const uint8_t CLOCK_SYNC_SIZE = 14; ///< Indica o numero de bytes ocupados pelo relogio no pacote transmitido. + const uint8_t SEQ_NUM_SIZE = 1; ///< Indica o numero de bytes ocupados para uso de sequence number. + const uint8_t CB_AUDIO_DATA_SIZE = 240; ///< Indica o numero de pacotes enviados pelo CBx referente a dados de audio. + const uint8_t TIMESLICE_PLACE = 22; ///< Indica o local ( em relação ao começo do pacote ) onde se encontra o timeslice. @@ -54,21 +55,20 @@ const uint8_t MAX_CB_IN_A_BRANCH = 52; ///< Estabelece o nro máximo de CBx em um mesmo ramo -const uint8_t READ = 0x01; -///< Define o estado ( na main ) de que existe um dados disponivel para leitura. -const uint8_t WAITING = 0x00; -///< Define o estado ( na main ) de que esta apenas esperando por um novo pacote vindo dos CBx. - const uint8_t BOOT = 0x00; ///< Indica o tipo boot, enviado pelo CBx, assim que o mesmo liga ou sofre reboot. const uint8_t REGISTRY = 0x02; ///< Tipo de registro, enviado pelo CBx, quando o mesmo quer se registrar, enviado pela Header para verificar se determinado CBx ainda esta ativo. + const uint8_t REGISTRY_ACK = 0x02 | BIT7; +///< "ack de resposta" do tiop REGISTRY const uint8_t INVITE = 0x04; ///< Representa o tipo de pedido de invite, enviado pelo CBx sempre quando o mesmo quer iniciar uma ligação com o server. + const uint8_t INVITE_ACK = 0x04 | BIT7; +///< "ack de resposta" do tiop INVITE const uint8_t AUDIO = 0x08; ///< Pacotes do tipo audio são trocados entre Header e CBx durante a ligação, representam os dados RTP. @@ -81,7 +81,9 @@ const uint8_t CB_BYE = 0x20; ///< Representa o tipo de pacote que o CBx envia para a Header solicitando o final da ligação. + const uint8_t CB_BYE_ACK = 0x20 | BIT7; +///< "ack de resposta" do tiop CB_BYE const uint8_t PROMPT = 0x01; ///< Identifica o tipo de pacote responsavel por mandar comandos executáveis no Cbx. @@ -91,21 +93,33 @@ const uint8_t FW = 0x50; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW1 = 0x51; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW2 = 0x52; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW3 = 0x53; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW4 = 0x54; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW5 = 0x55; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. + const uint8_t FW6 = 0x56; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. const uint8_t CB_STATS = 0x07; +///< Tipo de comunicação de estatisticas de rede, enviadas pela CBx + const uint8_t CB_STATS_ACK = 0x07 | BIT7; +///< "ack de resposta" do tiop CB_STATS_ACK + +const uint16_t BROADCAST_EXT = 0x03f2; +///< Ramal de broadcast, usado na comunicação Header -> CBx const uint8_t DO_NOTHING = 0x7f; ///< Representa o tipo de idle, importante para algumas comunicações. @@ -142,15 +156,20 @@ ///< Indica o IP do Gateway de rede const uint16_t RX_CB_IDLE = 300; -const uint16_t EXTERN_WDT_IDLE = 630; +///< Tempo maximo ( countdown em segundos ) que a Header espera por algum pacote no lado fibra, deixa de tickar o wdt. + const uint16_t ETH_CONNECT_TIMEOUT = 330; +///< Tempo maximo ( countdown em segundos ) que a Header espera tentando conectar na interface ETH, deixa de tickar o wdt quando chega em zero. const uint16_t RTP_MSG_SIZE = 160; +///< Tamanho em bytes ocupados pelos pacotes de audio no sentido * -> Header -> CBx extern uint32_t pkg_zero; ///< Contador de pacotes contendo somente zeros + extern uint32_t pkg_ckserr; ///< Contador de pacotes em que o checksum resultou divergente do calculado/recebido + extern uint32_t pkg_cksok; ///< Contador de pacotes em que o checksum resultou o mesmo calculado e o recebido @@ -174,7 +193,7 @@ * ... * @endcode */ -uint16_t vz_checksum( uint8_t * buffer, size_t length ); +uint16_t vz_checksum ( uint8_t * buffer, size_t length ); /* incorporar a parte de cc */ /** @@ -221,7 +240,7 @@ * ...= demais __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__ bytes * */ -uint8_t * parse_vz_pkg( int * ext, int * port, volatile uint8_t * type, uint8_t * cb_buffer ); +uint8_t * parse_vz_pkg ( int * ext, int * port, volatile uint8_t * type, uint8_t * cb_buffer ); /** * @Synopsis Função responsavel por montar o pacote para envio para o CBx seguindo o formato do protocolo VZ. @@ -247,7 +266,7 @@ * ... * @endcode */ -uint8_t * build_cb_package( int ext, int port, uint8_t type, char * cb_buffer, uint8_t seq_num, int length, uint8_t * pkg ); +uint8_t * build_cb_package ( int ext, int port, uint8_t type, char * cb_buffer, uint8_t seq_num, int length, uint8_t * pkg ); /** * @Synopsis Obtém uma referência de clock de um servidor. @@ -263,6 +282,6 @@ * 20141105101235 */ -int init_ranges( void ); +int init_ranges ( void ); #endif \ No newline at end of file