Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Mon May 25 13:11:00 2015 +0000
Revision:
128:3ae1c74773a8
Parent:
127:e7160a463b6c
Child:
132:05cd37f7e007
Merge com as funcionalidade de monitoramento de bateria

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 69:65665afbad5d 1 /**
klauss 69:65665afbad5d 2 * @file prompt.h
klauss 69:65665afbad5d 3 * @Synopsis Implementa as funcionalidades de prompt/prompt-eth da Header.
klauss 69:65665afbad5d 4 * @author Fernando Cola / Jhontan Casale
klauss 69:65665afbad5d 5 * @version 1
klauss 69:65665afbad5d 6 * @date 2014-11-05
klauss 69:65665afbad5d 7 */
klauss 69:65665afbad5d 8
klauss 17:67a6b557eda5 9 #ifndef _PROMPT_H
klauss 17:67a6b557eda5 10 #define _PROMPT_H
klauss 17:67a6b557eda5 11
klauss 128:3ae1c74773a8 12 #include "bits.h"
klauss 44:cc4996469404 13 #include "mbed.h"
klauss 127:e7160a463b6c 14 #include "debug.h"
klauss 128:3ae1c74773a8 15 #include "flood.h"
klauss 128:3ae1c74773a8 16 #include "vz_protocol.h"
klauss 74:81c47fff88a5 17 #include "shared_variables.h"
klauss 128:3ae1c74773a8 18 #include "power_source_monitoring.h"
klauss 127:e7160a463b6c 19
klauss 126:1f90756250fb 20 #include <stdlib.h>
klauss 44:cc4996469404 21
klauss 119:ee6a53069455 22 const uint8_t PVERSION = 25;
klauss 119:ee6a53069455 23 const uint8_t PROMPT_UDP_COMMAND_SIZE = 64;
klauss 119:ee6a53069455 24 const uint8_t PERSISTENT_TCP_IDLE_MAX_TIME = 30;
klauss 81:3656f00ab3db 25
klauss 119:ee6a53069455 26 const uint16_t TCP_IDLE_MAX_TIME = 360;
klauss 78:1353744f01e1 27 ///< Define o tempo maximo de espera por um novo comando via eth, dado que já estamos em uma sessão TCP.
klauss 78:1353744f01e1 28
klauss 119:ee6a53069455 29 const uint16_t TCP_ALIVE_IDLE_MAX_TIME = 360;
klauss 78:1353744f01e1 30 ///< Define o tempo maximo de espera por um novo comando via eth dado que já estamos em uma sessão TCP e a flag tcp_alive esta on.
klauss 69:65665afbad5d 31
klauss 121:ee02790d00b7 32 const uint16_t PROMPT_ETH_BUFFER_SIZE = 1024;
klauss 121:ee02790d00b7 33 ///< Representa o tamanho máximo do pacote recebido pelo prompt da Header.
klauss 121:ee02790d00b7 34
klauss 121:ee02790d00b7 35 const uint16_t DEBUGBUFSIZE = PROMPT_ETH_BUFFER_SIZE;
klauss 69:65665afbad5d 36 ///< Define o tamanho do buffer de entrada de dados.
klauss 44:cc4996469404 37
klauss 17:67a6b557eda5 38 extern uint8_t dog;
klauss 69:65665afbad5d 39 ///< Variável de controle que ativa a mensagem de boas vindas.
klauss 69:65665afbad5d 40
klauss 121:ee02790d00b7 41 extern bool flood_silence;
klauss 69:65665afbad5d 42
klauss 74:81c47fff88a5 43 extern bool delayed_flood;
klauss 74:81c47fff88a5 44 ///< Variável de controle do envio de pacotes de flood off
klauss 74:81c47fff88a5 45
klauss 78:1353744f01e1 46 extern bool tcp_alive;
klauss 78:1353744f01e1 47 ///< Flag que indica para não dar timeout na conexão tcp
klauss 78:1353744f01e1 48
klauss 114:472502b31a12 49 extern Timer tcp_timer;
klauss 78:1353744f01e1 50 ///< Timer responsavel por dar timeout por não utilização de recurso.
klauss 78:1353744f01e1 51
klauss 69:65665afbad5d 52 /**
klauss 69:65665afbad5d 53 * @Synopsis Principal função de processamento de comandos.
klauss 69:65665afbad5d 54 *
klauss 69:65665afbad5d 55 * \note Apesar de formalmente receber apenas um parâmetro, esta função verifica uma porta TCP para verificar eventual
klauss 69:65665afbad5d 56 * envio de comandos, processando qualquer comando enviado por um usuário ligado na rede.
klauss 69:65665afbad5d 57 *
klauss 69:65665afbad5d 58 * @param ethernet_pkg Uma string de comando que será analisada, caso seja um comando válido, executa-o.
klauss 69:65665afbad5d 59 *
klauss 69:65665afbad5d 60 * @return NULL, sempre retorna NULL.
klauss 69:65665afbad5d 61 *
klauss 69:65665afbad5d 62 * Exemplo:
klauss 69:65665afbad5d 63 * @code
klauss 69:65665afbad5d 64 * ...
klauss 69:65665afbad5d 65 * char * returned_prompt = prompt_process( NULL );
klauss 69:65665afbad5d 66 * ...
klauss 69:65665afbad5d 67 * @endcode
klauss 69:65665afbad5d 68 */
klauss 121:ee02790d00b7 69 char * prompt_process ( char * msg_from_cb, int length );
klauss 28:94aec56c6329 70
klauss 69:65665afbad5d 71 /**
klauss 69:65665afbad5d 72 * @Synopsis Inicializa o prompt e os sockets de conexão eth
klauss 69:65665afbad5d 73 *
klauss 69:65665afbad5d 74 * Exemplo:
klauss 69:65665afbad5d 75 * @code
klauss 69:65665afbad5d 76 * ...
klauss 69:65665afbad5d 77 * init_prompt();
klauss 69:65665afbad5d 78 * ...
klauss 69:65665afbad5d 79 * @endcode
klauss 69:65665afbad5d 80 */
klauss 121:ee02790d00b7 81 int init_prompt_eth ( void );
klauss 69:65665afbad5d 82
klauss 44:cc4996469404 83 extern char * debug_buf;
klauss 69:65665afbad5d 84 ///< Buffer de entrada dos dados via serial.
klauss 17:67a6b557eda5 85
klauss 119:ee6a53069455 86 inline void reconnect_udp_prompt_process( void )
klauss 119:ee6a53069455 87 {
klauss 119:ee6a53069455 88 udp_client.close();
klauss 119:ee6a53069455 89 udp_client.set_blocking( false, 0 );
klauss 119:ee6a53069455 90 udp_client.bind( UDP_PORT_LISTENER );
klauss 119:ee6a53069455 91 }
klauss 119:ee6a53069455 92
klauss 17:67a6b557eda5 93 #endif