Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Wed Feb 25 18:44:11 2015 +0000
Revision:
104:62646ef786a3
Parent:
100:09a23fcd3bdf
Child:
105:a930035b6556
- Remo??o do implementado para bootloader cbx.; - Remo??o do implementado para telemetria.; - Remo??o do implementado ( comentado ) em file_system_manager.cpp; - BUGFIX perda de conex?o serial quando recebido um comando via eth;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 99:e80850c51106 1 #include "fw.h"
klauss 99:e80850c51106 2
klauss 99:e80850c51106 3 UDPSocket fw_sock;
klauss 99:e80850c51106 4 Endpoint fw_server;
klauss 104:62646ef786a3 5 uint16_t miss_fw_send_pkg = 0;
klauss 99:e80850c51106 6
klauss 99:e80850c51106 7 void init_fw_handler( void ){
klauss 99:e80850c51106 8 char buff_ip[ 16 ] = "";
klauss 99:e80850c51106 9 char buff_port[ 8 ] = "";
klauss 99:e80850c51106 10 int fw_port = 0;
klauss 99:e80850c51106 11
klauss 99:e80850c51106 12 FILE *fp = fopen( "/qspi/fw_ip.txt", "r");
klauss 99:e80850c51106 13 //debug_msg("");
klauss 99:e80850c51106 14 if( fp == NULL ){
klauss 104:62646ef786a3 15 if( debug_file | debug_reconnect ) debug_msg("Failed to open /qspi/fw_ip.txt" );
klauss 99:e80850c51106 16 strncpy( buff_ip, __FW_SERVER_IP__, 20 );
klauss 99:e80850c51106 17 //debug_msg("");
klauss 99:e80850c51106 18 }else{
klauss 99:e80850c51106 19 //debug_msg("");
klauss 99:e80850c51106 20 int read = fread( buff_ip, 1, 512, fp );
klauss 99:e80850c51106 21 if( read > 0 ){
klauss 99:e80850c51106 22 for( int i = 0; i < read; i++ )
klauss 99:e80850c51106 23 if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){
klauss 99:e80850c51106 24 buff_ip[ i ] = '\0';
klauss 99:e80850c51106 25 break;
klauss 99:e80850c51106 26 }
klauss 104:62646ef786a3 27 if( debug_file | debug_reconnect ) debug_msg("fw server ip %s", buff_ip );
klauss 99:e80850c51106 28 //debug_msg("");
klauss 99:e80850c51106 29 }else{
klauss 104:62646ef786a3 30 if( debug_file | debug_reconnect ) debug_msg("Failed to open /qspi/fw_ip.txt" );
klauss 99:e80850c51106 31 strncpy( buff_ip, __FW_SERVER_IP__, 20 );
klauss 99:e80850c51106 32 //debug_msg("");
klauss 99:e80850c51106 33 }
klauss 99:e80850c51106 34 }
klauss 99:e80850c51106 35 if( fp != NULL ) fclose( fp );
klauss 99:e80850c51106 36 //debug_msg("");
klauss 99:e80850c51106 37 fp = fopen( "/qspi/fw_port.txt", "r");
klauss 99:e80850c51106 38 if( fp == NULL ) {
klauss 104:62646ef786a3 39 if( debug_fw | debug_reconnect ) debug_msg("Failed to open /qspi/fw_port.txt" );
klauss 99:e80850c51106 40 fw_port = __FW_SERVER_PORT__;
klauss 99:e80850c51106 41 } else {
klauss 99:e80850c51106 42 //debug_msg("");
klauss 99:e80850c51106 43 if( fread( (void *)buff_port, 1, 32, fp ) > 0 ) {
klauss 99:e80850c51106 44 fw_port = atoi( buff_port );
klauss 104:62646ef786a3 45 if( debug_fw | debug_reconnect ) send_msg( "fw server port %d", fw_port );
klauss 99:e80850c51106 46 } else {
klauss 104:62646ef786a3 47 if( debug_fw | debug_reconnect ) send_msg( "Failed to read /qspi/fw_port.txt" );
klauss 99:e80850c51106 48 fw_port = __FW_SERVER_PORT__;
klauss 99:e80850c51106 49 }
klauss 99:e80850c51106 50 }
klauss 104:62646ef786a3 51 if( fp != NULL ) fclose( fp );
klauss 99:e80850c51106 52 int addr = fw_server.set_address( buff_ip , fw_port );
klauss 104:62646ef786a3 53 if( debug_fw | debug_reconnect ) send_msg(" Valor de retorno set_address -- %d ", addr );
klauss 99:e80850c51106 54 fw_sock.set_blocking( false, 0 );
klauss 99:e80850c51106 55 int bind = fw_sock.bind( __FW_HEADER_PORT__ );
klauss 104:62646ef786a3 56 if( debug_fw | debug_reconnect ) send_msg(" Valor de retorno bind -- %d ", bind );
klauss 99:e80850c51106 57 }
klauss 99:e80850c51106 58
klauss 99:e80850c51106 59 void re_start_fw( void ){
klauss 99:e80850c51106 60 int close = fw_sock.close();
klauss 104:62646ef786a3 61 if( debug_fw | debug_reconnect ) send_msg(" Valor de retorno close-- %d ", close );
klauss 99:e80850c51106 62
klauss 99:e80850c51106 63 init_fw_handler();
klauss 99:e80850c51106 64 }
klauss 99:e80850c51106 65
klauss 99:e80850c51106 66 void fw_cbx_pkg( int ext, int port, char * data ){
klauss 99:e80850c51106 67 static uint8_t fw_cbx_pkg_id = 0x00;
klauss 99:e80850c51106 68 data[ __CB_BUFFER_SIZE__ - 1 ] = fw_cbx_pkg_id++;
klauss 99:e80850c51106 69
klauss 104:62646ef786a3 70 int send = fw_sock.sendTo( fw_server, data, __CB_BUFFER_SIZE__ );
klauss 104:62646ef786a3 71
klauss 104:62646ef786a3 72 if( send != __CB_BUFFER_SIZE__ )
klauss 104:62646ef786a3 73 {
klauss 104:62646ef786a3 74 if( debug_reconnect )
klauss 104:62646ef786a3 75 {
klauss 104:62646ef786a3 76 send_msg("Reconnect FW");
klauss 104:62646ef786a3 77 }
klauss 104:62646ef786a3 78
klauss 104:62646ef786a3 79 miss_fw_send_pkg++;
klauss 104:62646ef786a3 80 re_start_fw();
klauss 104:62646ef786a3 81 }
klauss 99:e80850c51106 82 }