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:
2014-11-24
Revision:
75:bd3c647b860b
Parent:
74:81c47fff88a5
Child:
76:9f5f99dd895a

File content as of revision 75:bd3c647b860b:

/**
 * @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 <stdint.h>
#include <stdio.h>
#include "mbed.h"
#include "EthernetInterface.h"
#include "string.h"
#include "shared_variables.h"

extern char debug_msg1[ 1024+64 ];
///< Buffer usado na composisão da mensagem enviada pela macro debug_msg
extern char debug_msg2[ 1024 ];
///< Buffer usado na composisão da mensagem enviada pela macro debug_msg
extern char msg_[ 1024 ];
///< 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 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.

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

#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); \
  pc.printf( "%s\n\r", debug_msg1 ); \
  if( tcp_session ){ \
    strcat( debug_msg1, "\n\r" ); \
    tcp_client.send_all( debug_msg1, strlen( debug_msg1 ) ); \
  }else if( udp_request ){ \
    udp_server.sendTo( udp_client, debug_msg1, strlen( debug_msg1 ) ); \
  } \
}

#define send_msg(...) _send_msg(__VA_ARGS__)
#define _send_msg(...) { \
  sprintf( msg_, __VA_ARGS__); \
  pc.printf( "%s\n\r> ", msg_ ); \
  if( tcp_session ){ \
    strcat( msg_, "\n\r> " ); \
    tcp_client.send_all( msg_, strlen( msg_ ) ); \
  }else if( udp_request ){ \
    udp_server.sendTo( udp_client, debug_msg1, strlen( debug_msg1 ) ); \
  } \
}

#endif