Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
54:448d57291be6
Parent:
53:bb492a8f115a
Child:
55:2f5e7374af9d
--- a/prompt.cpp	Tue Oct 21 19:35:07 2014 +0000
+++ b/prompt.cpp	Wed Oct 22 13:53:49 2014 +0000
@@ -1,4 +1,5 @@
 #include "prompt.h"
+#include "utils.h"
 
 TCPSocketServer tcp_server;
 TCPSocketConnection tcp_client;
@@ -29,7 +30,7 @@
 bool cb_status = false;
 bool reset_cks = false;
 bool debug_telemetry = false;
-bool telemetry_test = false;
+bool main_test = false;
 
 uint8_t test_debug = 1;
 #define PVERSION 4          // Sempre atualizar a versao do prompt
@@ -334,20 +335,23 @@
     }
         
     if( type == 'w'){                 // Create and write the default configs
-        fip = fopen("/qspi/myip.txt", "w");
+        char tmp[ 8 ];
+        //fip = fopen("/qspi/myip.txt", "w");
         fmask = fopen("/qspi/mymask.txt", "w");
         fgate = fopen("/qspi/mygateway.txt", "w");
         fport = fopen("/qspi/mysipport.txt", "w");
         fsip = fopen("/qspi/serverip.txt", "w");
         fsport = fopen("/qspi/serverport.txt", "w");   
-        fext = fopen( "/qspi/myext.txt", "w" );
+        //fext = fopen( "/qspi/myext.txt", "w" );
         fserext = fopen( "/qspi/peerext.txt", "w" );
         fudpport = fopen( "/qspi/udpport.txt", "w" );
         ftcpport = fopen( "/qspi/tcpport.txt", "w" );
         
-        fprintf( fip, "%s\n\r", __MY_IP__  );   //myip
+        //fprintf( fip, "%s\n\r", __MY_IP__  );   //myip
+        set_ip( __MY_IP__ );
         fprintf( fport, "%i\n\r", __MY_PORT__ );  //mysipport // isso pode dar pala
-        fprintf( fext, "%i\n\r", __MY_EXT__ );  //myext
+        //fprintf( fext, "%i\n\r", __MY_EXT__ );  //myext
+        set_header_ext( itoa( __MY_EXT__, tmp, 10 ) );
         
         fprintf( fsip, "%s\n\r", __SERVER_IP__  );  //asterisk ip
         fprintf( fserext, "%i\n\r",__PEER_EXT__ );  //asterisk port
@@ -596,19 +600,21 @@
 
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "ipset ", 6 )) {
             miss_match = false;
-            fip = fopen("/qspi/myip.txt", "w");
-            fprintf(fip,"%s\n\r",(debug_buf+6));
-            fclose(fip);
-            pc.printf("\n\r");
+            //fip = fopen("/qspi/myip.txt", "w");
+            //fprintf(fip,"%s\n\r",(debug_buf+6));
+            //fclose(fip);
+            //pc.printf("\n\r");
+            set_ip( debug_buf + 6 );
             files('s');
         }
         
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "extset ", 7 ) ){
             miss_match = false;
-            fip = fopen("/qspi/myext.txt", "w");
-            fprintf(fip, "%s\n\r" , ( debug_buf + 7) );
-            fclose(fip);
-            pc.printf("\n\r");
+            //fip = fopen("/qspi/myext.txt", "w");
+            //fprintf(fip, "%s\n\r" , ( debug_buf + 7) );
+            //fclose(fip);
+            //pc.printf("\n\r");
+            set_header_ext( debug_buf + 7);
             files('s');
         }
         
@@ -702,7 +708,7 @@
         
         if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "tt" ) ){
             miss_match = false;
-            telemetry_test = true;
+            main_test = true;
         }
         
         
@@ -868,7 +874,7 @@
             static uint8_t id_msg = 0x10;
             uint8_t write_buffer[ 300 ];
             int ext,port;
-            char *split, *ref;
+            char *split, *ref, *cmd;
             
             ref = debug_buf;
             debug_buf[ bufptr++ ] = 0x0D;
@@ -879,18 +885,24 @@
             
             port = convert_ext_to_port( ext );
             split += strlen( split ) + 1;
+            cmd = split;
             
             promptcb_last_ext = ext;
             promptcb_last_port = port;
             
-            pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, split );
-            __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, split, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
+            pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
+            __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
             pc.printf("\n\rComando enviado\n\r");
             
             for( register int i = 0; i < 32; i++ )
                 pc.printf("%0x ", write_buffer[ i ] );
             pc.printf("\n\r");
             
+            if( from_eth ){
+                snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\r\next=%d port=%d\r\ncmd=%s\r\n\n\rComando enviado\n\r", ext, port, cmd );
+                debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
+            }
+            
             debug_buf = ref;
             bufptr = 0;
             debug_buf[ 0 ] = 0;
@@ -929,7 +941,6 @@
             debug_buf[ bufptr++ ] = 0x00;
 
             pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",promptcb_last_ext, promptcb_last_port, debug_buf + 4 );
-
             __send_to_cb__( __build_cb_package__( promptcb_last_ext, promptcb_last_port, __PROMPT__, debug_buf + 4, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
             pc.printf("\n\rComando enviado\n\r");
         }
@@ -1228,48 +1239,38 @@
             //Obs :: a ultima linha nao mandamos direto pro tcp porque ela eh enviada fora desse escopo
             if( from_eth ) snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "PROMPT VERSION: V%d\n\r",PVERSION);
         }
-        /*
-        if ( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )) {
-            if ( debug_buf[16] != 0 && debug_buf[11] != 0x20 )
-                pc.printf("\n\r Error: formato errado! ramal=xxxx porta=xxxx \n\r");
-            else {
-                uint8_t data[300];
-                uint16_t cks=0;
-
-                //data[0] = (uint8_t)( (debug_buf[7]&0xf0)<<4 + (debug_buf[8]&0x0f) ) ;
-                //data[1] = (uint8_t)( (debug_buf[9]&0xf0)<<4 + (debug_buf[10]&0x0f) ) ;
-                //data[2] = (uint8_t)( (debug_buf[12]&0xf0)<<4 + (debug_buf[13]&0x0f) ) ;
-                /data[3] = (uint8_t)( (debug_buf[14]&0xf0)<<4 + (debug_buf[15]&0x0f) ) ;
-
-                data[0] = (uint8_t)( debug_buf[ 7 ] & 0xFF00 >> 8  );
-                data[1] = (uint8_t)( debug_buf[ 9 ] & 0x00FF );
-                data[2] = (uint8_t)( debug_buf[ 12 ] & 0xFF00 >> 8 );
-                data[3] = (uint8_t)( debug_buf[ 14 ] & 0x00FF );
-
-                data[6] = 0x04;
-                for (int i = 7; i < 300; i++)  data[i] = 0x00;
-                cks = __checksum__(data,300);
-                data[4] = cks>>8;
-                data[5] = cks&0xff;
-
-                pc.printf("\n\r");
-                for( int i = 0; i < 300; i++ )
-                    pc.printf("%x ", data[ i ] );
-                pc.printf("\n\r");
-
-                xmemcpy(TXBuffer,data,300);
-
-                pc.printf("\n\r");
-                for( int i = 0; i < 300; i++ )
-                    pc.printf("%x ", data[ i ] );
-                pc.printf("\n\r");
-
-                send2callboxes();
-
-                pc.printf("\n\r calling callbox %s \n\r",debug_buf+7);
+        
+        if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "callme ", 7 )){
+            miss_match = false;
+            static uint8_t id_msg = 0x10;
+            uint8_t write_buffer[ 300 ];
+            int ext,port;
+            char cmd[ 16 ];
+            strcpy( cmd, "call init " );
+            
+            debug_buf[ bufptr++ ] = 0x0D;
+            debug_buf[ bufptr++ ] = 0x00;
+            
+            ext = atoi( debug_buf + 7 );
+            port = convert_ext_to_port( ext );
+            
+            strcat( cmd, ( ext % 2 ) ? "B" : "A" );
+            
+            promptcb_last_ext = ext;
+            promptcb_last_port = port;
+            
+            pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n", ext, port, cmd );
+            __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
+            pc.printf("\n\rComando enviado\n\r");
+            
+            if( from_eth ){
+                snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\r\next=%d port=%d\r\ncmd=%s\r\n\n\rComando enviado\n\r", ext, port, cmd );
+                debug_buf[ strlen( debug_buf ) - 1 ] = '\0';
             }
+            
+            bufptr = 0;
+            debug_buf[ 0 ] = 0;
         }
-        */
         
         if( miss_match ){ 
             pc.printf("\n\r> %s: command not found\n\r", debug_buf );
@@ -1325,3 +1326,15 @@
       return( aux );
   }
 } 
+
+void set_ip( char * new_ip ){
+    fip = fopen("/qspi/myip.txt", "w");
+    fprintf( fip, "%s\n\r", new_ip  );
+    fclose( fip );
+}
+
+void set_header_ext( char * new_header_ext ){
+    fext = fopen( "/qspi/myext.txt", "w" );
+    fprintf( fext, "%i\n\r", new_header_ext );  //myext
+    fclose( fext );
+}
\ No newline at end of file