Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
92:92df17f538a8
Parent:
89:0fe315117b00
Child:
97:8985817e8847
--- a/prompt.cpp	Thu Jan 08 23:44:08 2015 +0000
+++ b/prompt.cpp	Sat Jan 10 16:35:11 2015 +0000
@@ -1291,8 +1291,8 @@
             }
         }
         
-        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dcks ", 5 )) {
-            if (xmemmatch( (uint8_t*)(debug_buf + 5 ), (uint8_t*) "on",2 )) {
+        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" );
                 if( from_eth ){
@@ -1312,7 +1312,7 @@
             }
         }
         
-        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9 )) {
+        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 ];
@@ -1355,6 +1355,39 @@
             for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0;
         }
         
+        else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "bye ", 4 ) ){
+            miss_match = false;
+            int ext,port;
+            char *split, *ref;
+            uint8_t write_buffer[ 300 ], data[ 300 ];
+            
+            ref = debug_buf;
+            
+            strcat( debug_buf, "\r\r\r\n" );
+            
+            split = strtok( debug_buf + 4, " " );
+            ext = atoi( split );
+            port = convert_ext_to_port( ext );
+            
+            pc.printf("\r\next=%d port=%d request bye", ext, port );
+            send2callboxes( __build_cb_package__( ext, port, __CB_BYE__, (char * )data, 0x20, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
+            pc.printf("\n\rBye enviado");
+            
+            if( from_eth ){
+                char eth_msg[ 512 ];
+                snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d request bye\n\r", ext, port );
+                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 )) {