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:
2014-11-24
Revision:
74:81c47fff88a5
Parent:
72:895ca792c647
Child:
78:1353744f01e1

File content as of revision 74:81c47fff88a5:

/**
 * @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"

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

#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

/**
 * @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();

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/myip.txt
 *
 * @param new_header_ip Atualiza o valor de /qspi/myip.txt sobrescrevendo-o com o valor de new_header_ip
 *
 * Exemplo:
 * @code
 * ...
 *  set_ip( "192.168.120.2" );
 * ...
 * @endcode
 */
void set_ip( char * new_header_ip );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/myext.txt
 *
 * @param new_header_ext Atualiza o valor de /qspi/myext.txt sobrescrevendo-o com o valor de new_header_ext
 *
 * Exemplo:
 * @code
 * ...
 *  set_header_ext( 912 );
 * ...
 * @endcode
 */
void set_header_ext( int new_header_ext );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/mysipport.txt
 *
 * @param new_header_sip_port Atualiza o valor de /qspi/mysipport.txt sobrescrevendo-o com o valor de new_header_sip_port
 *
 * Exemplo:
 * @code
 * ...
 *  set_header_sip_port( 820 );
 * ...
 * @endcode
 */
void set_header_sip_port( int new_header_sip_port );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/serverip.txt
 *
 * @param new_server_ip Atualiza o valor de /qspi/serverip.txt sobrescrevendo-o com o valor de new_server_ip
 *
 * Exemplo:
 * @code
 * ...
 *  set_header_sip_port( "192.168.120.231" );
 * ...
 * @endcode
 */
void set_server_ip( char * new_server_ip );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/peerext.txt
 *
 * @param new_server_ext Atualiza o valor de /qspi/peerext.txt sobrescrevendo-o com o valor de new_server_ext
 *
 * Exemplo:
 * @code
 * ...
 *  set_header_sip_port( 1011 );
 * ...
 * @endcode
 */
void set_server_ext( int new_server_ext );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/serverport.txt
 *
 * @param new_server_port Atualiza o valor de /qspi/serverport.txt sobrescrevendo-o com o valor de new_server_port
 *
 * Exemplo:
 * @code
 * ...
 *  set_header_sip_port( 1562 );
 * ...
 * @endcode
 */
void set_server_port( int new_server_port );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/udpport.txt
 *
 * @param new_udp_port_listener Atualiza o valor de /qspi/udpport.txt sobrescrevendo-o com o valor de new_udp_port_listener
 *
 * Exemplo:
 * @code
 * ...
 *  set_udp_port_listener( 11147 );
 * ...
 * @endcode
 */
void set_udp_port_listener( int new_udp_port_listener );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/tcpport.txt
 *
 * @param new_tcp_port_listener Atualiza o valor de /qspi/tcpport.txt sobrescrevendo-o com o valor de new_tcp_port_listener
 *
 * Exemplo:
 * @code
 * ...
 *  set_tcp_port_listener( 7178 );
 * ...
 * @endcode
 */
void set_tcp_port_listener( int new_tcp_port_listener );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/telemetry_ip.txt
 *
 * @param new_telemetry_ip Atualiza o valor de /qspi/telemetry_ip.txt sobrescrevendo-o com o valor de new_telemetry_ip
 *
 * Exemplo:
 * @code
 * ...
 *  set_telemetry_ip( "192.154.123.7" )
 * ...
 * @endcode
 */
void set_telemetry_ip( char * new_telemetry_ip );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/telemetry_port.txt
 *
 * @param new_telemetry_port Atualiza o valor de /qspi/telemetry_port.txt sobrescrevendo-o com o valor de new_telemetry_port
 *       
 * Exemplo:
 * @code
 * ...
 *  set_telemetry_port( 9193 );
 * ...
 * @endcode
 */
void set_telemetry_port( int new_telemetry_port );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/mymask.txt
 *
 * @param new_mask Atualiza o valor de /qspi/mymask.txt sobrescrevendo-o com o valor de new_mask
 *
 * Exemplo:
 * @code
 * ...
 *  set_mask( "255.255.0.0" );
 * ...
 * @endcode
 */
void set_mask( char * new_mask );

/**
 * @Synopsis Altera o valor default contido no arquivo /qspi/mygate.txt
 *
 * @param new_gateway Atualiza o valor de /qspi/mygate.txt sobrescrevendo-o com o valor de new_gateway
 *
 * Exemplo:
 * @code
 * ...
 *  set_gateway( "192.168.118.2" );
 * ...
 * @endcode
 */
void set_gateway( char * new_gateway );

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


#endif