Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

debug.h

Committer:
klauss
Date:
2015-05-25
Revision:
128:3ae1c74773a8
Parent:
126:1f90756250fb
Child:
131:938ab88facae

File content as of revision 128:3ae1c74773a8:

/**
 * @file debug.h
 * @Synopsis Instrumenta o uso de debug no código da header.
 * @author Jhonatan Casale / PedroZN
 * @version 1
 * @date 2014-11-05
 */
#ifndef __DEBUG_H__
#define __DEBUG_H__

#include "shared_variables.h"

extern UDPSocket udp_client;
extern bool udp_query;
extern bool tcp_session;
extern bool from_eth;
extern uint16_t string_msg_overflow;
extern Endpoint udp_server;
extern uint16_t miss_prompt_udp_send_pkg;

extern UDPSocket eth_fw_debug;

extern Endpoint eth_fw_debug_server;

const uint16_t DEBUG_MSG_SIZE = 1024;

const uint8_t DEBUG_AUX_MSG_SIZE = 64;

extern char debug_msg1[ DEBUG_MSG_SIZE + DEBUG_AUX_MSG_SIZE ];
///< Buffer usado na composisão da mensagem enviada pela macro debug_msg

extern char debug_msg2[ DEBUG_MSG_SIZE ];
///< Buffer usado na composisão da mensagem enviada pela macro debug_msg

extern char msg_[ DEBUG_MSG_SIZE ];
///< Buffer utilizado pela macro send_msg

extern bool cb_session;
///< Não utilizada atualmente.

extern bool cb_status;
///< Não utilizada atualmente.

extern bool debug_telemetry;
///< Variável de controle que aciona o debug de telemetria.

extern bool main_test;
///< Variável de controle para acionamento de algum comando de interesse.

extern bool sizes;

extern bool debug_reconnect;
extern uint16_t miss_debug_fw_send_pkg;
extern uint16_t miss_sip_registry_send_pkg;
extern uint16_t miss_sip_invite_send_pkg;
extern uint16_t miss_sip_bye_send_pkg;
extern uint16_t miss_sip_unregistry_send_pkg;
extern uint16_t miss_sip_ok_send_pkg;
extern uint16_t miss_sip_rcv_bye_send_pkg;
extern uint16_t miss_wdt_send_pkg;
extern uint16_t miss_sip_inc_pkg;
extern uint16_t miss_udp_prompt_send_pkg;
extern uint16_t miss_closk_send_pkg;

extern bool show_uptime;

extern bool debug_sip;
///< Variável de controle que ativa o debug sip.
extern bool debug_prompt;
///< Variável de controle que ativa o debug do prompt.
extern bool debug_vector;
///< Variável de controle que ativa o debug do vector.
extern bool debug_cb;
///< Variável de controle que ativa o debug da classe Call_box.
extern bool debug_main;
///< Variável de controle que ativa o debug da main.
extern bool debug_cks;
///< Variável de controle que ativa o debug do ckechsum dos pacotes recebidos.
extern bool debug_cb_rx;
///< Variável de controle que ativa o debug dos pacotes recebidos do CBx.
extern bool debug_cb_tx;
///< Variável de controle que ativa o debug dos pacotes enviados para o CBx.
extern bool debug_eth_rx;
///< Variável de controle que ativa o debug dos pacotes recebidos da eth \note não implementado.
extern bool debug_eth_tx;
///< Variável de controle que ativa o debug dos pacotes enviados para a eth \note não implementado.
extern bool debug_prompt_eth;
///< Variável de controle que ativa o debug do prompt eth.
extern bool debug_file;
///< Variável de controle que ativa o debug do sistema de arquivos.
extern bool dbl;
///< Variável de controle que ativa o debug do protocolo de bootloader dos CBx
extern bool dparallel;
///< Variável de controle que aciona o debug de envio de pacotes pro cb, quando se
///< quer transmitir um pacote enquanto outro pacote, já esta em transmissao.
extern bool test_debug;
///< Variável de controle que ativa o debug de test.
extern bool debug_aging;
///< Variável de controle que ativa o debug da funçao de aging do registro.

extern bool debug_clock;
extern bool debug_invite;
extern bool debug_wake;
extern bool debug_muted;
extern bool debug_cpld;
extern bool debug_show_tx_cpld;
extern bool debug_show_rx_cpld;
extern bool debug_cks_err;
extern bool debug_ping;
extern bool debug_refresh;
extern bool long_list;
extern bool debug_out_of_range;
extern bool debug_wdt;
extern bool debug_eth;
extern bool wdt_show;
extern bool debug_rtp;
extern bool debug_memory;
extern bool debug_port_match;
extern bool debug_fw;
extern bool debug_gp;
extern bool missed_send_udp_pkg;

extern bool debug_boot;
extern bool debug_fw_print;
extern bool debug_uart3;
extern bool big_bug_pkg;
extern bool flood_bug_pkg;
extern uint16_t miss_ftp_udp_send_pkg;
extern bool reset_missed_send_udp_pkg;
extern bool debug_missed;
extern uint16_t deleted_sip;
extern bool dshow_rtp;
extern bool dcallshow_rtp;
extern bool debug_reset_rtp;
extern bool debug_rtp;
extern uint16_t deleted_sip;
extern bool print_values;
extern bool print_v_cb;
extern bool print_v_call;
extern bool print_cb_var;
extern bool print_cb_all;
extern bool print_hex_cb_var;
extern bool print_hex_cb_all;
extern bool print_sip_var;
extern bool print_sip_all;
extern bool print_hex_sip_var;
extern bool print_hex_sip_all;

extern bool print_call_var;
extern bool print_call_all;
extern bool print_hex_call_var;
extern bool print_hex_call_all;

extern bool print_rtp_var;
extern bool print_rtp_all;
extern bool print_hex_rtp_var;
extern bool print_hex_rtp_all;
extern bool frtp;
extern bool rescue_rtp;
extern bool drop_invite_pkg;
extern bool drop_entendi_pkg;
extern bool drop_invite_to_ast_pkg;
extern bool drop_ok_pkg;
extern bool drop_ack_pkg;
extern bool drop_rtp_from_ast_pkg;
extern bool drop_rtp_from_cbx_pkg;
extern bool drop_registry_pkg;
extern bool registra;
extern bool received_audio_from_cb;
extern bool debug_reconnect;
extern uint16_t miss_ftp_udp_send_pkg;
extern bool debug_bootloader;
extern bool debug_bind;
extern bool debug_app_init;
extern bool debug_string_length;
extern bool show_current_time;
extern bool dmissed_wdt;
extern bool debug_hello;
extern bool debug_sqn;
extern bool test_ts;
extern bool debug_pwr_src;

/**
 * @Synopsis Função usada anteriormente para formatação da string que debug, não esta mais em uso.
 *
 * * @param pkg Ponteiro para inicio dos dados a serem transmitidos.
 * @param size Tamanho do pacote que deve ser enviado.
 *
 */
int eth_fw_debug_pkgdebug_pkg( uint8_t * pkg, int size );

/*
#define debug_msg(...) _debug_msg(__VA_ARGS__)
#define _debug_msg(...) { \
  sprintf(debug_msg1, "%s:%d ", __FILE__, __LINE__); \
  sprintf(debug_msg2, __VA_ARGS__); \
  strcat(debug_msg1, debug_msg2); \
  if( debug_uart3 ) pc.printf( "%s\n\r> ", debug_msg1 ); \
  if( tcp_session ){ \
    strcat( debug_msg1, "\n\r" ); \
    while( !( tcp_client.send_all( debug_msg1, strlen( debug_msg1 ) ) ) ); \
  }else if( udp_request ){ \
    udp_server.sendTo( udp_client, debug_msg1, strlen( debug_msg1 ) ); \
  } \
}
*/
#define debug_msg(...) _debug_msg(__VA_ARGS__)
#define _debug_msg(...) { \
  snprintf( debug_msg1, DEBUG_AUX_MSG_SIZE, "%s:%d ", __FILE__, __LINE__); \
  snprintf( debug_msg2, DEBUG_MSG_SIZE, __VA_ARGS__); \
  strncat( debug_msg1, debug_msg2, DEBUG_MSG_SIZE ); \
  if( debug_uart3  && !udp_query && !from_eth  ) pc.printf( "%s\n\r> ", debug_msg1 ); \
  if( tcp_session && !udp_query ){ \
    strcat( debug_msg1, "\n\r> " ); \
    while( !( tcp_client.send_all( debug_msg1, strlen( debug_msg1 ) ) ) ); \
  } \
  if( udp_query ){ \
    strcat( debug_msg1, "\n\r" ); \
    int send = udp_client.sendTo( udp_server, debug_msg1, strlen( debug_msg1 ) ); \
    if( send != strlen( debug_msg1 ) ) \
    { \
        if( debug_reconnect && debug_uart3 && !from_eth ) pc.printf("\r\nReconnect udp_query client"); \
        reconnect_prompt_udp_socket(); \
        miss_prompt_udp_send_pkg++; \
    } \
  } \
}
#define send_msg(...) _send_msg(__VA_ARGS__)
#define _send_msg(...) { \
  int snprintf_ret = snprintf( msg_, DEBUG_MSG_SIZE, __VA_ARGS__ ); \
  if( snprintf_ret >= DEBUG_MSG_SIZE ) string_msg_overflow++; \
  if( debug_uart3 && !udp_query && !from_eth ) pc.printf( "%s\n\r> ", msg_ ); \
  if( tcp_session && !udp_query ){ \
    strcat( msg_, "\n\r> " ); \
    while( !( tcp_client.send_all( msg_, strlen( msg_ ) ) ) ); \
  } \
  if( udp_query ){ \
    strcat( msg_, "\n\r> " ); \
    int send = udp_client.sendTo( udp_server, msg_, strlen( msg_ ) ); \
    if( send != strlen( msg_ ) ) \
    { \
        if( debug_reconnect && debug_uart3 ) pc.printf ("\n\rReconnect udp_query client\n\r"); \
        reconnect_prompt_udp_socket(); \
        miss_prompt_udp_send_pkg++; \
    } \
  } \
}

#endif