Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
78:1353744f01e1
Parent:
77:e8c0253b57bc
Child:
79:9bc12aa305a9
--- a/prompt.cpp	Tue Nov 25 18:43:01 2014 +0000
+++ b/prompt.cpp	Tue Dec 16 12:13:01 2014 +0000
@@ -1,9 +1,12 @@
 #include "prompt.h"
 
+#define PVERSION 7          // Sempre atualizar a versao do prompt
+
 bool flood_silence = false;
 bool delayed_flood = false;
 
-#define PVERSION 5          // Sempre atualizar a versao do prompt
+Timer tcp_timer;
+bool tcp_alive = false;
 
 char __debug_buf__[ DEBUGBUFSIZE ];
 char * debug_buf = __debug_buf__;
@@ -22,20 +25,6 @@
   return 1; /* matches */
 }
 
-uint8_t xstrmatch(const uint8_t * s1, const uint8_t * s2) {
-  while (*s1) {
-    if (*s1++ != *s2++) return 0; /* does not match */
-  }
-  if ( *s2 == 0 )
-    return 1; /* matches */
-  else
-    return 0; /* does not match */
-}
-
-void xmemcpy(uint8_t * dest, const uint8_t * src, uint16_t size){
-  while (size--) *dest++ = *src++;
-}
-
 int str2uint ( char * s, unsigned int * val ){
   int i = 0;
   unsigned int ret = 0;
@@ -84,7 +73,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader IP " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header IP " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -97,7 +86,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader ext " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header ext " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -110,7 +99,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rHeader port " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Header port " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -123,7 +112,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer IP " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server IP " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -136,7 +125,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer ext " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server ext " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -149,7 +138,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rServer port " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Server port " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -162,7 +151,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rMascara de rede " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Mascara de rede " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -175,7 +164,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rGateway IP " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Gateway IP " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -188,7 +177,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rUDP Port " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "UDP Port " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -201,7 +190,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTCP Port " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "TCP Port " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -214,7 +203,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTelemetry Server IP " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server IP " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -227,7 +216,7 @@
         if( from_eth ){
             //snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rTelemetry Server Port " );
             snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server Port " );
-            if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+            if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
             
             else if( udp_request ){
                 udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -470,15 +459,12 @@
     pc.printf("\n\r*******File System Ready*******\n\r");
 }
 
-void init_prompt(){
+void init_prompt_eth(){
     tcp_server.bind( TCP_PORT_LISTENER );
     tcp_server.listen();
-    //tcp_timer.start();
     tcp_server.set_blocking( false, 1 );
-        
     udp_server.set_blocking( false, 2 );
-    udp_server.bind( UDP_PORT_LISTENER );
-        
+    udp_server.bind( UDP_PORT_LISTENER );    
     pc.printf("*******Prompt eth Ready*******\n\r");
 }
 
@@ -500,16 +486,24 @@
         flood_timeout.stop();
         flood_timeout.reset();
     }
+    
     if( tcp_timer.read() >= TCP_IDLE_MAX_TIME ){
-        tcp_timer.stop();
-        tcp_timer.reset();
-        tcp_session = false;
-        debug_buf = __debug_buf__;
-        bufptr = last_bufptr;
-        bufret = 0;
-        from_eth = false;
-        tcp_client.close();
-        return( NULL );
+        bool close_tcp = true;
+        //if( tcp_alive && ( tcp_timer.read() < TCP_ALIVE_IDLE_MAX_TIME ) ){
+        //    close_tcp = false;    
+        //}
+        if( close_tcp ){
+            tcp_alive = false;
+            tcp_timer.stop();
+            tcp_timer.reset();
+            tcp_session = false;
+            debug_buf = __debug_buf__;
+            bufptr = last_bufptr;
+            bufret = 0;
+            from_eth = false;
+            tcp_client.close();
+            return( NULL );
+        }
     }        
     if( !tcp_server.accept( tcp_client ) ){
         tcp_session = true;
@@ -950,7 +944,7 @@
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug On\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_alive = 1;
+                debug_alive = true;
             }
             if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )) {
                 miss_match = false;
@@ -959,7 +953,7 @@
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Off\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_alive = 0;
+                debug_alive = false;
             }
             if( xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "show",4 ) ){
                 miss_match = false;
@@ -969,7 +963,7 @@
                 pc.printf("\n\rdebug_vector");
                 pc.printf("\n\rdebug_cb");
                 pc.printf("\n\rdebug_main");
-                pc.printf("\n\rdebug_cks");
+                pc.printf("\n\rdcks");
                 pc.printf("\n\rdebug_cb_rx");
                 pc.printf("\n\rdebug_cb_tx*");
                 pc.printf("\n\rdebug_eth_rx*");
@@ -977,21 +971,21 @@
                 pc.printf("\n\rdebug_file");
                 
                 if( from_eth ){
-                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rdsip \n\rdebug_alive \n\rdebug_prompt \n\rdebug_vector \n\rdebug_cb \n\rdebug_main \n\rdebug_cks \n\rdebug_cb_rx \n\rdebug_cb_tx* \n\rdebug_eth_rx* \n\rdebug_eth_tx* \n\rdebug_file\n\r" );
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\n\rdsip \n\rdebug_alive \n\rdebug_prompt \n\rdebug_vector \n\rdebug_cb \n\rdebug_main \n\rdcks \n\rdebug_cb_rx \n\rdebug_cb_tx* \n\rdebug_eth_rx* \n\rdebug_eth_tx* \n\rdebug_file\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
             }
         }
         
-        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dsip ",5 ) ){
-            if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 ) ){
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dsip ", 5 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on", 2 ) ){
                 miss_match = false;
                 pc.printf( "\n\rSip Debug ON\n\r" );
                 if( from_eth ){
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug On\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_sip = 1;
+                debug_sip = true;
             }
             if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
                 miss_match = false;
@@ -1000,7 +994,154 @@
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Sip Debug Off\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_sip = 0;
+                debug_sip = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dping ", 6 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 6 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rPing Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Ping Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_ping = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 6 ), (uint8_t*) "off",3 )) {
+                miss_match = false;
+                pc.printf( "\n\rPing Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Ping Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_ping= false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dwu ", 4 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 4 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rWake Up Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Wake Up Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_wake = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 4 ), (uint8_t*) "off",3 )) {
+                miss_match = false;
+                pc.printf( "\n\rWake Up Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Wake Up Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_wake = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "tcp_alive ", 10 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rTCP don't drop mode on\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "TCP don't drop mode on\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                tcp_alive = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
+                miss_match = false;
+                pc.printf( "\n\rTCP don't drop mode off\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "TCP don't drop mode off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                tcp_alive = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "daging ",7 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 7 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rAging Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Aging Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_aging = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 7 ), (uint8_t*) "off",3 )) {
+                miss_match = false;
+                pc.printf( "\n\rAging Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Aging Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_aging = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dcpld ", 6 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 6 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rDCPLD Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "DCPLD Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_cpld = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 6 ), (uint8_t*) "off",3 ) ){
+                miss_match = false;
+                pc.printf( "\n\rDCPLD Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "DCPLD Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_cpld = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dcks_err ", 9 ) ){
+            if (xmemmatch( (uint8_t*)(debug_buf + 9 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rCKS_ERR Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS_ERR Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_cks_err = true;
+            }
+            if (xmemmatch( (uint8_t*)(debug_buf + 9 ), (uint8_t*) "off", 3 ) ){
+                miss_match = false;
+                pc.printf( "\n\rCKS_ERR Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS_ERR Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_cks_err = false;
+            }
+        }
+        
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dinvite ", 8 ) ){
+            if( xmemmatch( (uint8_t*)(debug_buf + 8 ), (uint8_t*) "on", 2 ) ){
+                miss_match = false;
+                pc.printf( "\n\rInvite Debug ON\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Invite Debug On\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_invite = 1;
+            }
+            if( xmemmatch( (uint8_t*)(debug_buf + 8 ), (uint8_t*) "off",3 )) {
+                miss_match = false;
+                pc.printf( "\n\rInvite Debug OFF\n\r" );
+                if( from_eth ){
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Invite Debug Off\n\r" );
+                    debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+                }
+                debug_invite = 0;
             }
         }
         
@@ -1025,28 +1166,28 @@
             }
         }
         
-        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dtelemetry ", 11 ) ){
-            if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "on",2 ) ){
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dtelos ", 7 ) ){
+            if (xmemmatch( (uint8_t*)( debug_buf + 7 ), (uint8_t*) "on", 2 ) ){
                 miss_match = false;
                 pc.printf( "\n\rTelemetry Debug ON\n\r" );
                 if( from_eth ){
-                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug On\n\r" );
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\rTelemetry Debug On\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
                 debug_telemetry = true;
             }
-            if (xmemmatch( (uint8_t*)(debug_buf + 11 ), (uint8_t*) "off",3 )) {
+            if (xmemmatch( (uint8_t*)(debug_buf + 7 ), (uint8_t*) "off", 3 )) {
                 miss_match = false;
-                pc.printf( "\n\rrTelemetry Debug OFF\n\r" );
+                pc.printf( "\n\rTelemetry Debug OFF\n\r" );
                 if( from_eth ){
-                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "rTelemetry Debug Off\n\r" );
+                    snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\rTelemetry Debug Off\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
                 debug_telemetry = false;
             }
         }
         
-        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cks ", 10 )) {
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dcks ", 5 )) {
             if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 )) {
                 miss_match = false;
                 pc.printf( "\n\rCKS Debug ON\n\r" );
@@ -1054,7 +1195,7 @@
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug On\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_cks = 1;
+                debug_cks = true;
             }
             if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "off",3 )) {
                 miss_match = false;
@@ -1063,10 +1204,53 @@
                     snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "CKS Debug Off\n\r" );
                     debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
                 }
-                debug_cks = 0;
+                debug_cks = false;
             }
         }
         
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9 )) {
+            miss_match = false;
+            //static uint8_t id_msg = 0x10;
+            uint8_t write_buffer[ 300 ];
+            int ext,port;
+            char *split, *ref, *cmd;
+            
+            ref = debug_buf;
+            
+            strcat( debug_buf, "\r" );
+            
+            split = strtok( debug_buf + 9, " " );
+            ext = atoi( split );
+            split = strtok( NULL, " " );
+            port = atoi( split );
+            split += strlen( split ) + 1;
+            cmd = split;
+            
+            promptcb_last_ext = ext;
+            promptcb_last_port = port;
+            
+            strcpy( promptcb_last_cmd, cmd );
+            strcat( cmd, "\r\r\r\n" );
+            
+            pc.printf("\r\next=%d port=%d cmd=%s", ext, port, cmd );
+            send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
+            pc.printf("\n\rComando enviado");
+            
+            if( from_eth ){
+                char eth_msg[ 512 ];
+                snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d cmd=%s\r\nComando enviado\n\r", ext, port, cmd );
+                if( tcp_session ){ 
+                    tcp_client.send_all( eth_msg, strlen( eth_msg ) );
+                }else if( udp_request ){
+                    udp_server.sendTo( udp_client, eth_msg, strlen( eth_msg ) );
+                }
+            }
+            
+            debug_buf = ref;
+            bufptr = 0;
+            for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
+        }
+        
         //promptcb ramal porta comando
         //FIXME colocar a parte eth de novo
         else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ", 4 )) {
@@ -1076,9 +1260,7 @@
             
             ref = debug_buf;
             
-            //debug_buf[ strlen( debug_buf ) ] = 0x0D;
             strcat( debug_buf, "\r" );
-            //debug_buf[ strlen( debug_buf ) + 1 ] = 0x00;
             
             split = strtok( debug_buf + 4, " " );
             ext = atoi( split );
@@ -1090,19 +1272,20 @@
             promptcb_last_ext = ext;
             promptcb_last_port = port;
             
-            //int tmp = strlen( cmd );
-            //cmd[ tmp ] = 0x0D;
-            //cmd[ tmp + 1 ] = 0x00;
             strcpy( promptcb_last_cmd, cmd );
-            strcat( cmd, "\r\r\r" );
+            strcat( cmd, "\r\r\r\n" );
+            
+            //send_msg( "Tamanho do cmd == %d", strlen( cmd ) );
             
-            pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
+            //for( register uint16_t i = strlen( cmd ); i < __CB_BUFFER_SIZE__; i++ ) cmd[ i ] = 0;
+            
+            pc.printf("\r\next=%d port=%d cmd=%s", ext, port, cmd );
             send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-            pc.printf("\n\rComando enviado\n\r");
+            pc.printf("\n\rComando enviado");
             
             if( from_eth ){
                 char eth_msg[ 512 ];
-                snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d\r\ncmd=%s\r\n\n\rComando enviado\n\r", ext, port, cmd );
+                snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d cmd=%s\r\nComando enviado\n\r", ext, port, cmd );
                 if( tcp_session ){ 
                     tcp_client.send_all( eth_msg, strlen( eth_msg ) );
                 }else if( udp_request ){
@@ -1205,17 +1388,17 @@
             pc.printf("\n\r****************************PROMPT HELP******************\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "\n\r****************************PROMPT HELP******************\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
-                    udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
+                    while( !( udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ) ) );
                 }
             }
             
             pc.printf("ifconfig                        - mostra o arquivo de configuracao do sistema\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ifconfig                        - mostra o arquivo de configuracao do sistema\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1224,7 +1407,7 @@
             pc.printf("dconfig                         - volta as configuracoes do sistema para o padrao de fabrica\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "dconfig                         - volta as configuracoes do sistema para o padrao de fabrica\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1233,7 +1416,7 @@
             pc.printf("callme [ramal porta]            - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "callme [ramal porta]            - envia o pedido de ligacao para o callbox com o ramal e porta indicada\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1242,7 +1425,7 @@
             pc.printf("pcb porta comando               - envia o <comando> para o cbx <ramal> e <porta> executar\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "promptcb ramal porta comando    - envia o <comando> para o cbx <ramal> e <porta> executar\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1263,7 +1446,7 @@
             pc.printf("reset                           - resta o sistema\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset                           - resta o sistema\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1272,7 +1455,7 @@
             pc.printf("ipset [ip]                      - Configura o IP da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ipset [ip]                      - Configura o IP da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1281,7 +1464,7 @@
             pc.printf("extset [ext]                    - Configura a ext da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "extset [ext]                    - Configura a ext da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1290,7 +1473,7 @@
             pc.printf("msipport [port]                 - Configura a porta SIP da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "msipport [port]                 - Configura a porta SIP da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1299,7 +1482,7 @@
             pc.printf("serverip [ip]                   - Configura o ip do servidor asterisk\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serverip [ip]                   - Configura o ip do servidor asterisk\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1308,7 +1491,7 @@
             pc.printf("serextset [ext]                 - Configura a server ext da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "serextset [ext]                 - Configura a server ext da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1317,7 +1500,7 @@
             pc.printf("ssport [port]                   - Configura a porta SIP do servidor asterisk\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ssport [port]                   - Configura a porta SIP do servidor asterisk\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1326,7 +1509,7 @@
             pc.printf("maskset [mask]                  - Configura a mascara da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maskset [mask]                  - Configura a mascara da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1335,7 +1518,7 @@
             pc.printf("gatewayset [gateway]            - Configura o gateway da cabeceira\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "gatewayset [gateway]            - Configura o gateway da cabeceira\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1344,7 +1527,7 @@
             pc.printf("telemetry_ip                    - Configura o IP do servidor de telemetria\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_ip                    - Configura o IP do servidor de telemetria\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1353,7 +1536,7 @@
             pc.printf("telemetry_port                  - Configura a port do servidor de telemetria\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "telemetry_port                  - Configura a port do servidor de telemetria\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1363,7 +1546,7 @@
             pc.printf("showcb                          - lista os Cbx registrados na header\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "showcb                          - lista os Cbx registrados na header\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1383,7 +1566,7 @@
             pc.printf("cks                             - exibe estatisticas de check sum\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "cks                             - exibe estatisticas de check sum\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1392,7 +1575,7 @@
             pc.printf("reset_cks                       - reseta estatisticas de check sum\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "reset_cks                       - reseta estatisticas de check sum\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1402,7 +1585,7 @@
             pc.printf(".                               - executa o comando anterior novamente\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, ".                               - executa o comando anterior novamente\n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1411,7 +1594,7 @@
             pc.printf("debug [on|off|show]             - seleciona debugs gerais | lista de debugs \n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "debug [on|off|show]             - seleciona debugs gerais | lista de debugs \n\r" );
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1420,7 +1603,7 @@
             pc.printf("{ flood [ on | off ] | [+|-] }  - simula envio de pacotes de audio\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "{ flood [ on | off ] | [+|-] }  - simula envio de pacotes de audio\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1430,7 +1613,7 @@
             pc.printf("silence <start_ext end_ext>     - envia comando de flood off para os ramais no intervalo end_ext - start_ext\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "silence <start_ext end_ext>     - envia comando de flood off para os ramais no intervalo end_ext - start_ext\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1440,7 +1623,7 @@
             pc.printf("++ ext                          - Header flood on, ext flood on\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "++ ext                          - Header flood on, ext flood on\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1450,7 +1633,7 @@
             pc.printf("-- ext                          - Header flood off, ext flood off\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "++ ext                          - Header flood on, ext flood on\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1460,7 +1643,7 @@
             pc.printf("rx                              - Exibe ultimo pacote recebido dos CBx\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "rx                              - Exibe ultimo pacote recebido dos CBx\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1469,7 +1652,7 @@
             pc.printf("tx                              - Exibe ultimo pacote enviado para os CBx\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "tx                              - Exibe ultimo pacote enviado para os CBx\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1478,7 +1661,7 @@
             pc.printf("ls | status                     - Exibe uma lista ordenada por ext do CBx registrados na Header\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "ls | status                     - Exibe uma lista ordenada por ext do CBx registrados na Header\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1487,7 +1670,7 @@
             pc.printf("types                           - Lista os types usados no protocolo de comunicacao Header -- CBx\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "types                           - Lista os types usados no protocolo de comunicacao Header -- CBx\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1496,7 +1679,7 @@
             pc.printf("protocol                        - Exibe formato do pacote seguindo o protocolo de comunicacao Header -- CBx\n\r");
             if( from_eth ){
                 snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "protocol                        - Exibe formato do pacote seguindo o protocolo de comunicacao Header -- CBx\n\r");
-                if( tcp_session ) tcp_client.send_all( debug_buf, strlen( debug_buf ) );
+                if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) );
                 
                 else if( udp_request ){
                     udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) );
@@ -1646,7 +1829,8 @@
 }
 
 void set_gateway( char * new_gateway ){
-    fgate = fopen("/qspi/mygateway.txt", "w");
+    //fgate = fopen("/qspi/mygateway.txt", "w");
+    fgate = fopen("/qspi/mygate.txt", "w");
     fprintf(fgate,"%s\n\r", new_gateway );
     fclose( fgate );
 }