Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
99:e80850c51106
Child:
100:09a23fcd3bdf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fw_handler.cpp	Mon Jan 19 18:00:42 2015 +0000
@@ -0,0 +1,76 @@
+#include "fw.h"
+
+UDPSocket fw_sock;                                                                                                                      
+Endpoint fw_server;
+
+void init_fw_handler( void ){
+    char buff_ip[ 16 ] = "";
+    char buff_port[ 8 ] = "";
+    int fw_port = 0;
+
+    FILE *fp = fopen( "/qspi/fw_ip.txt", "r");
+    //debug_msg("");
+    if( fp == NULL ){
+        if( debug_file ) debug_msg("Failed to open /qspi/fw_ip.txt" );
+        strncpy( buff_ip, __FW_SERVER_IP__, 20 );
+        //debug_msg("");
+    }else{
+        //debug_msg("");
+        int read = fread( buff_ip, 1, 512, fp );
+        if( read > 0 ){
+            for( int i = 0; i < read; i++ ) 
+                if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){
+                    buff_ip[ i ] = '\0';
+                    break;
+                }
+            if( debug_file ) debug_msg("fw server ip %s", buff_ip );
+            //debug_msg("");
+        }else{
+            if( debug_file ) debug_msg("Failed to open /qspi/fw_ip.txt" );
+            strncpy( buff_ip, __FW_SERVER_IP__, 20 );
+            //debug_msg("");
+        }
+    }
+    if( fp != NULL ) fclose( fp );
+    //debug_msg("");    
+    fp = fopen( "/qspi/fw_port.txt", "r");
+    if( fp == NULL ) {
+        if( debug_fw ) debug_msg("Failed to open /qspi/fw_port.txt" );
+        fw_port = __FW_SERVER_PORT__;
+    } else {
+        //debug_msg(""); 
+        if( fread( (void *)buff_port, 1, 32, fp ) > 0 ) {
+            fw_port = atoi( buff_port );
+            if( debug_fw ) debug_msg( "fw server port %d", fw_port );
+        } else {
+            if( debug_fw ) debug_msg( "Failed to read /qspi/fw_port.txt" );
+            fw_port = __FW_SERVER_PORT__;
+        }
+    }
+    if( fp != NULL ) fclose( fp );
+    //debug_msg("");    
+    int addr = fw_server.set_address( buff_ip , fw_port );
+    if( debug_fw ) send_msg(" Valor de retorno set_address -- %d ", addr );
+    fw_sock.set_blocking( false, 0 );
+    //debug_msg(""); 
+    int bind = fw_sock.bind( __FW_HEADER_PORT__ );
+    if( debug_fw ) send_msg(" Valor de retorno bind -- %d ", bind );
+    //debug_msg(""); 
+}
+
+void re_start_fw( void ){
+    int close = fw_sock.close();
+    if( debug_fw ) send_msg(" Valor de retorno close-- %d ", close );
+    
+    init_fw_handler();
+}
+
+void fw_cbx_pkg( int ext, int port, char * data ){
+    static uint8_t fw_cbx_pkg_id = 0x00;
+    data[ __CB_BUFFER_SIZE__ - 1 ] = fw_cbx_pkg_id++;
+     
+    int8_t sent = 0;
+    do{
+        sent = fw_sock.sendTo( fw_server, data, __CB_BUFFER_SIZE__ );
+    }while( sent == 0 );
+}
\ No newline at end of file