Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

prompt.h

Committer:
klauss
Date:
2015-04-07
Revision:
109:a5b8264ffbbc
Parent:
106:a34fcf9f0e02
Child:
113:db67ae00550e

File content as of revision 109:a5b8264ffbbc:

/**
 * @file prompt.h
 * @Synopsis Implementa as funcionalidades de prompt/prompt-eth da Header.
 * @author Fernando Cola / Jhontan Casale
 * @version 1
 * @date 2014-11-05
 */

#ifndef _PROMPT_H
#define _PROMPT_H

#include <stdint.h>
#include "mbed.h"
#include "EthernetInterface.h"
#include "telemetry.h" // used for __TELEMETRY_SERVER_IP__ and __TELEMETRY_SERVER_PORT__
#include "utils.h" // need for convert_ext_to_port()
#include "flood.h"
#include "shared_variables.h"
#include "debug.h"
#include "wdt_manager.h"
#include "file_system_manager.h"
#include "fw.h"

#define PVERSION 25

#define TCP_IDLE_MAX_TIME 360//90
///< Define o tempo maximo de espera por um novo comando via eth, dado que já estamos em uma sessão TCP.

#define TCP_ALIVE_IDLE_MAX_TIME 360
///< 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.

#define DEBUGBUFSIZE 50
///< Define o tamanho do buffer de entrada de dados.

extern uint8_t dog;
///< Variável de controle que ativa a mensagem de boas vindas.

extern FILE *fmask;         ///< arquivo de mascara de rede
extern FILE *fgate;         ///< arquivo de gateway ip

extern FILE *fip;           ///< arquivo de header ip
extern FILE *fext;          ///< arquivo de header ext
extern FILE *fport;         ///< arquivo de header sip port

extern FILE *fsip;          ///< arquivo de server sip ip
extern FILE *fserext;       ///< arquivo de server sip ext
extern FILE *fsport;        ///< arquivo de server sip port

extern FILE *fudpport;      ///< arquivo de porta udp que a header escuta
extern FILE *ftcpport;      ///< arquivo de porta tcp que a header escuta
extern FILE *ftip;          ///< arquivo de IP do servidor para envio de telemetria
extern FILE *ftport;        ///< arquivo de Porta UDP do servidor para envio de telemetria

extern bool flood_silence;
extern bool delayed_flood;
///< Variável de controle do envio de pacotes de flood off

extern bool tcp_alive;
///< Flag que indica para não dar timeout na conexão tcp

extern Timer tcp_timer;
///< Timer responsavel por dar timeout por não utilização de recurso.

/**
 * @Synopsis Principal função de processamento de comandos.
 *
 * \note Apesar de formalmente receber apenas um parâmetro, esta função verifica uma porta TCP para verificar eventual
 * envio de comandos, processando qualquer comando enviado por um usuário ligado na rede.
 *
 * @param ethernet_pkg Uma string de comando que será analisada, caso seja um comando válido, executa-o.
 *
 * @return NULL, sempre retorna NULL.
 *
 * Exemplo:
 * @code
 * ...
 *  char * returned_prompt = prompt_process( NULL );
 * ...
 * @endcode
 */
char * prompt_process( char * ethernet_pkg );

/**
 * @Synopsis Init file system and check if files exist
 *
 * Exemplo:
 * @code
 * ...
 *  init_fsystem();
 * ...
 * @endcode
 */
void init_fsystem();

/**
 * @Synopsis Inicializa o prompt e os sockets de conexão eth
 *
 * Exemplo:
 * @code
 * ...
 *  init_prompt();
 * ...
 * @endcode
 */
void init_prompt_eth();

extern char * debug_buf;
///< Buffer de entrada dos dados via serial.

#endif