Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Thu Apr 16 12:57:13 2015 +0000
Revision:
113:db67ae00550e
Parent:
109:a5b8264ffbbc
Child:
114:472502b31a12
valide esse fw

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 74:81c47fff88a5 12 #include <stdint.h>
klauss 44:cc4996469404 13 #include "mbed.h"
klauss 74:81c47fff88a5 14 #include "EthernetInterface.h"
klauss 74:81c47fff88a5 15 #include "utils.h" // need for convert_ext_to_port()
klauss 44:cc4996469404 16 #include "flood.h"
klauss 74:81c47fff88a5 17 #include "shared_variables.h"
klauss 74:81c47fff88a5 18 #include "debug.h"
klauss 74:81c47fff88a5 19 #include "wdt_manager.h"
klauss 74:81c47fff88a5 20 #include "file_system_manager.h"
klauss 99:e80850c51106 21 #include "fw.h"
klauss 113:db67ae00550e 22 #include "vz_protocol.h"
klauss 44:cc4996469404 23
klauss 97:8985817e8847 24 #define PVERSION 25
klauss 113:db67ae00550e 25 #define PROMPT_UDP_COMMAND_SIZE 64
klauss 81:3656f00ab3db 26
klauss 78:1353744f01e1 27 #define TCP_IDLE_MAX_TIME 360//90
klauss 78:1353744f01e1 28 ///< Define o tempo maximo de espera por um novo comando via eth, dado que já estamos em uma sessão TCP.
klauss 78:1353744f01e1 29
klauss 113:db67ae00550e 30 #define PERSISTENT_TCP_IDLE_MAX_TIME 30//360//90
klauss 113:db67ae00550e 31 ///< Define o tempo maximo de espera por um novo comando via eth, dado que já estamos em uma sessão TCP.
klauss 113:db67ae00550e 32
klauss 78:1353744f01e1 33 #define TCP_ALIVE_IDLE_MAX_TIME 360
klauss 78:1353744f01e1 34 ///< 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 35
klauss 113:db67ae00550e 36 #define DEBUGBUFSIZE __PROMPT_ETH_BUFFER_SIZE__
klauss 69:65665afbad5d 37 ///< Define o tamanho do buffer de entrada de dados.
klauss 44:cc4996469404 38
klauss 17:67a6b557eda5 39 extern uint8_t dog;
klauss 69:65665afbad5d 40 ///< Variável de controle que ativa a mensagem de boas vindas.
klauss 69:65665afbad5d 41
klauss 69:65665afbad5d 42 extern FILE *fmask; ///< arquivo de mascara de rede
klauss 69:65665afbad5d 43 extern FILE *fgate; ///< arquivo de gateway ip
klauss 69:65665afbad5d 44
klauss 69:65665afbad5d 45 extern FILE *fip; ///< arquivo de header ip
klauss 69:65665afbad5d 46 extern FILE *fext; ///< arquivo de header ext
klauss 69:65665afbad5d 47 extern FILE *fport; ///< arquivo de header sip port
klauss 69:65665afbad5d 48
klauss 69:65665afbad5d 49 extern FILE *fsip; ///< arquivo de server sip ip
klauss 69:65665afbad5d 50 extern FILE *fserext; ///< arquivo de server sip ext
klauss 69:65665afbad5d 51 extern FILE *fsport; ///< arquivo de server sip port
klauss 69:65665afbad5d 52
klauss 69:65665afbad5d 53 extern FILE *fudpport; ///< arquivo de porta udp que a header escuta
klauss 69:65665afbad5d 54 extern FILE *ftcpport; ///< arquivo de porta tcp que a header escuta
klauss 113:db67ae00550e 55 extern FILE *fshift_port;
klauss 17:67a6b557eda5 56
klauss 74:81c47fff88a5 57 extern bool flood_silence;
klauss 74:81c47fff88a5 58 extern bool delayed_flood;
klauss 74:81c47fff88a5 59 ///< Variável de controle do envio de pacotes de flood off
klauss 74:81c47fff88a5 60
klauss 78:1353744f01e1 61 extern bool tcp_alive;
klauss 78:1353744f01e1 62 ///< Flag que indica para não dar timeout na conexão tcp
klauss 78:1353744f01e1 63
klauss 113:db67ae00550e 64 extern Timer tmp_tcp_timer;
klauss 113:db67ae00550e 65 ///< Timer responsavel por dar timeout por não utilização de recurso.
klauss 113:db67ae00550e 66
klauss 113:db67ae00550e 67 extern Timer persistent_tcp_timer;
klauss 78:1353744f01e1 68 ///< Timer responsavel por dar timeout por não utilização de recurso.
klauss 78:1353744f01e1 69
klauss 69:65665afbad5d 70 /**
klauss 69:65665afbad5d 71 * @Synopsis Principal função de processamento de comandos.
klauss 69:65665afbad5d 72 *
klauss 69:65665afbad5d 73 * \note Apesar de formalmente receber apenas um parâmetro, esta função verifica uma porta TCP para verificar eventual
klauss 69:65665afbad5d 74 * envio de comandos, processando qualquer comando enviado por um usuário ligado na rede.
klauss 69:65665afbad5d 75 *
klauss 69:65665afbad5d 76 * @param ethernet_pkg Uma string de comando que será analisada, caso seja um comando válido, executa-o.
klauss 69:65665afbad5d 77 *
klauss 69:65665afbad5d 78 * @return NULL, sempre retorna NULL.
klauss 69:65665afbad5d 79 *
klauss 69:65665afbad5d 80 * Exemplo:
klauss 69:65665afbad5d 81 * @code
klauss 69:65665afbad5d 82 * ...
klauss 69:65665afbad5d 83 * char * returned_prompt = prompt_process( NULL );
klauss 69:65665afbad5d 84 * ...
klauss 69:65665afbad5d 85 * @endcode
klauss 69:65665afbad5d 86 */
klauss 113:db67ae00550e 87 char * prompt_process( char * ethernet_pkg, int length );
klauss 69:65665afbad5d 88
klauss 69:65665afbad5d 89 /**
klauss 69:65665afbad5d 90 * @Synopsis Init file system and check if files exist
klauss 69:65665afbad5d 91 *
klauss 69:65665afbad5d 92 * Exemplo:
klauss 69:65665afbad5d 93 * @code
klauss 69:65665afbad5d 94 * ...
klauss 69:65665afbad5d 95 * init_fsystem();
klauss 69:65665afbad5d 96 * ...
klauss 69:65665afbad5d 97 * @endcode
klauss 69:65665afbad5d 98 */
klauss 69:65665afbad5d 99 void init_fsystem();
klauss 28:94aec56c6329 100
klauss 69:65665afbad5d 101 /**
klauss 69:65665afbad5d 102 * @Synopsis Inicializa o prompt e os sockets de conexão eth
klauss 69:65665afbad5d 103 *
klauss 69:65665afbad5d 104 * Exemplo:
klauss 69:65665afbad5d 105 * @code
klauss 69:65665afbad5d 106 * ...
klauss 69:65665afbad5d 107 * init_prompt();
klauss 69:65665afbad5d 108 * ...
klauss 69:65665afbad5d 109 * @endcode
klauss 69:65665afbad5d 110 */
klauss 78:1353744f01e1 111 void init_prompt_eth();
klauss 69:65665afbad5d 112
klauss 44:cc4996469404 113 extern char * debug_buf;
klauss 69:65665afbad5d 114 ///< Buffer de entrada dos dados via serial.
klauss 17:67a6b557eda5 115
klauss 113:db67ae00550e 116 int reconnect_udp_prompt_process( void );
klauss 113:db67ae00550e 117
klauss 113:db67ae00550e 118 #define reconnect_udp_prompt_process(){ \
klauss 113:db67ae00550e 119 udp_client.close(); \
klauss 113:db67ae00550e 120 udp_client.set_blocking( false, 0 ); \
klauss 113:db67ae00550e 121 udp_client.bind( UDP_PORT_LISTENER ); \
klauss 113:db67ae00550e 122 }
klauss 113:db67ae00550e 123
klauss 17:67a6b557eda5 124 #endif