![](/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: vz_protocol.h
- Revision:
- 119:ee6a53069455
- Parent:
- 117:e9facba9db27
- Child:
- 121:ee02790d00b7
diff -r b93b17c50910 -r ee6a53069455 vz_protocol.h --- a/vz_protocol.h Fri Apr 24 13:54:24 2015 +0000 +++ b/vz_protocol.h Thu Apr 30 15:42:41 2015 +0000 @@ -12,136 +12,140 @@ #include <stdlib.h> #include <stdint.h> #include <string.h> -#include "shared_variables.h" // for __RTP_HEADER_SIZE__ +#include <time.h> #include "utils.h" // for xmemcpy #include "bits.h" +#include "clock.h" +#include "debug.h" -#define MIN_EXT 1 +const uint16_t SHIFT_PORT = 3000; + +const uint8_t MIN_EXT = 1; extern int begin; -#define MAX_EXT 5999 +const uint16_t MAX_EXT = 5999; extern int end; -#define __START_PKG_COUNT__ 100 -///< Estabelece o inicio dos pacotes RTP, não utilizado atualmente -#define UDP_PORT_LISTENER 11406 +const uint16_t UDP_PORT_LISTENER = 11406; ///< Porta UDP na qual a Header espera por eventuais mensagens. -#define TCP_PORT_LISTENER 7879 +const uint16_t TCP_PORT_LISTENER = 7879; ///< Porta TCP na qual a Header espera por eventuais mensagens. -#define UDP_BOOTLOADER_PORT 9891 +const uint16_t UDP_BOOTLOADER_PORT = 9891; ///< Porta UDP para tratativas do procedimento de gravação dos CBx. -#define __UDP_PORT__ 7890 -///< Antiga porta UDP que a Header ouvia, descontinuado. -#define __TCP_PORT__ 8709 -///< Antiga porta TCP que a Header ouvia, descontinuado. - -#define __VZ_HEADER_OFFSET__ 7 +const uint8_t VZ_HEADER_OFFSET = 7; ///< Indica o inicio dos dados recebidos efetivamente no pacote VZ. -#define __CB_BUFFER_SIZE__ 300 +const uint16_t CB_BUFFER_SIZE = 300; ///< Indica o numero máximo de bytes recebidos ( por pacote ) do CBx. -#define __PROMPT_ETH_BUFFER_SIZE__ 1024 +const uint16_t PROMPT_ETH_BUFFER_SIZE = 1024; ///< Representa o tamanho máximo do pacote recebido pelo prompt da Header. -#define __CLOCK_SYNC_SIZE__ 14 +const uint8_t CLOCK_SYNC_SIZE = 14; ///< Indica o numero de bytes ocupados pelo relogio no pacote transmitido. -#define __SEQ_NUM_SIZE__ 1 +const uint8_t SEQ_NUM_SIZE = 1; ///< Indica o numero de bytes ocupados para uso de sequence number. -#define __ETH_BUFFER_SIZE__ __CB_BUFFER_SIZE__ + __RTP_HEADER_SIZE__ + 1 // 313 -///< Indica o tamanho real do pacote que será enviado do CBx para o servidor via eth -#define __CB_AUDIO_DATA_SIZE__ 240 +const uint8_t CB_AUDIO_DATA_SIZE = 240; ///< Indica o numero de pacotes enviados pelo CBx referente a dados de audio. -#define __CHECKSUM_OFFSET__ 7 -///< Indica o deslocamento em relação ao começo do pacote enviado pelo CBx onde se encontra o cc. -#define __TIMESLICE_PLACE__ 22 +const uint8_t TIMESLICE_PLACE = 22; ///< Indica o local ( em relação ao começo do pacote ) onde se encontra o timeslice. -#define __MAX_CB_IN_A_BRANCH__ 52 +const uint16_t BASE_PORT = 5000; +///< Estabelece o menor ramal aceito para tratamento + +const uint8_t MAX_CB_IN_A_BRANCH = 52; ///< Estabelece o nro máximo de CBx em um mesmo ramo -#define __READ__ 0x01 +const uint8_t READ = 0x01; ///< Define o estado ( na main ) de que existe um dados disponivel para leitura. -#define __WAITING__ 0x00 +const uint8_t WAITING = 0x00; ///< Define o estado ( na main ) de que esta apenas esperando por um novo pacote vindo dos CBx. -#define __BOOT__ 0x00 // don't used because header do not expect acks for this type +const uint8_t BOOT = 0x00; ///< Indica o tipo boot, enviado pelo CBx, assim que o mesmo liga ou sofre reboot. -#define __REGISTRY__ 0x02 +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. -#define __REGISTRY_ACK_ 0x02 | BIT7 +const uint8_t REGISTRY_ACK = 0x02 | BIT7; -#define __INVITE__ 0x04 +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; -//#define __BL__ 0x03 - -#define __AUDIO__ 0x08 +const uint8_t AUDIO = 0x08; ///< Pacotes do tipo audio são trocados entre Header e CBx durante a ligação, representam os dados RTP. -#define __TELEMETRY__ 0x10 + +const uint8_t TELEMETRY = 0x10; ///< Define o tipo de pacote de telemetria enviado pelo CBx. -#define __BOOTLOADER_CBX__ 0x03 + +const uint8_t BOOTLOADER_CBX = 0x03; ///< Define o tipo de pacote para a gravação do CBx -#define __CB_BYE__ 0x20 + +const uint8_t CB_BYE = 0x20; ///< Representa o tipo de pacote que o CBx envia para a Header solicitando o final da ligação. -#define __PROMPT__ 0x01 +const uint8_t CB_BYE_ACK = 0x20 | BIT7; + +const uint8_t PROMPT = 0x01; ///< Identifica o tipo de pacote responsavel por mandar comandos executáveis no Cbx. -#define __FLOOD__ 0x40 + +const uint8_t FLOOD = 0x40; ///< Representa os pacotes de flood, úteis para validação de comunicação Header-CBx. -#define __FW__ 0x50 -///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __FW1__ 0x51 + +const uint8_t FW = 0x50; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __FW2__ 0x52 +const uint8_t FW1 = 0x51; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __FW3__ 0x53 +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. -#define __FW4__ 0x54 +const uint8_t FW4 = 0x54; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __FW5__ 0x55 +const uint8_t FW5 = 0x55; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __FW6__ 0x56 +const uint8_t FW6 = 0x56; ///< Tipo para redirecionamento semn tratamento para uma determinada porta UDP pré-configurada. -#define __CB_STATS__ 0x07 -#define __CB_STATS_ACK__ 0x07 | BIT7 +const uint8_t CB_STATS = 0x07; +const uint8_t CB_STATS_ACK = 0x07 | BIT7; -#define __DO_NOTHING__ 0x7f // ~BIT7 +const uint8_t DO_NOTHING = 0x7f; ///< Representa o tipo de idle, importante para algumas comunicações. -//#define __MY_IP__ "192.168.2.200" -//#define __MY_IP__ "192.168.2.201" -#define __MY_IP__ "192.168.120.171" +const char MY_IP[] = "192.168.120.171"; ///< Representa o IP default da Header. -#define __MY_EXT__ 820 +//#define __MY_IP__ "192.168.2.20?" // Colinas +//#define __MY_IP__ "192.168.1.200" // Colinas + +const uint16_t MY_EXT = 820; ///< Indica o ramal default da Header. -#define __MY_PORT__ 5062 + +const uint16_t MY_PORT = 5062; ///< Representa a porta default da Header. -#define __SERVER_IP__ "192.168.120.120" +const char SERVER_IP[] = "192.168.120.120"; ///< Indica o IP defaut do servidor para onde a Header ira encaminhar pedidos de ligação. -//#define __SERVER_IP__ "192.168.30.25" +//#define __SERVER_IP__ "192.168.30.25" // Colinas -//FIXME pode dar inconssistencia. -//#define __RTP_SEVER_IP__ "192.168.120.120" -#define __RTP_SEVER_IP__ __SERVER_IP__ -///< Referencia ao envio de dados RTP +const uint16_t PEER_EXT = 913; +///< Estabelece o ramal default para onde a Header ira direcionar os pedidos de ligações. +//#define __PEER_EXT__ 812 // VZ Producao +//#define __PEER_EXT__ 813 // VZ Desenvolvimento -#define __PEER_EXT__ 913 -///< Estabelece o ramal default para onde a Header ira direcionar os pedidos de ligações. -//#define __PEER_EXT__ 812 -#define __SERVER_PORT__ 5075 +const uint16_t SERVER_PORT = 5075; ///< Indica a porta default do server para onde os pacotes eth serão enviados na negociação SIP. -//#define __SERVER_PORT__ 5060 +//#define __SERVER_PORT__ 5060 // Colinas -#define __MY_MSK__ "255.255.255.0" +const char MY_MSK[] = "255.255.255.0"; ///< Indica a mascara de rede onde a Header se encontra. -//#define __MY_GTW__ "192.168.2.254" // colinas -#define __MY_GTW__ "192.168.120.1" // vz +//#define __MY_GTW__ "192.168.2.254" // Colinas + +const char MY_GTW[] = "192.168.120.1"; // vz ///< Indica o IP do Gateway de rede -#define RX_CB_IDLE 300 -#define EXTERN_WDT_IDLE 630 -#define ETH_CONNECT_TIMEOUT 330 +const uint16_t RX_CB_IDLE = 300; +const uint16_t EXTERN_WDT_IDLE = 630; +const uint16_t ETH_CONNECT_TIMEOUT = 330; + +const uint16_t RTP_MSG_SIZE = 160; extern uint32_t pkg_zero; ///< Contador de pacotes contendo somente zeros @@ -170,7 +174,7 @@ * ... * @endcode */ -uint16_t __checksum__( uint8_t * buffer, size_t length ); +uint16_t vz_checksum( uint8_t * buffer, size_t length ); /* incorporar a parte de cc */ /** @@ -217,7 +221,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. @@ -243,16 +247,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 ); - -/** - * @Synopsis Função que seria responsavel pelo envio de pacotes eth, porém descontinuada, será removida no futuro. - * - * @return O pacote pronto para envio via protocolo eth. - * - * \note Não implementada. - */ -char * __build_eth__package__( void ); +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. @@ -267,8 +262,7 @@ * * 20141105101235 */ -void __print_clock__( uint8_t * buffer ); -void init_ranges( void ); +int init_ranges( void ); #endif \ No newline at end of file