Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
29:7246460b73f8
Parent:
28:94aec56c6329
Child:
30:8dfb6d8de53d
--- a/prompt.cpp	Tue Sep 23 18:28:37 2014 +0000
+++ b/prompt.cpp	Wed Sep 24 18:02:18 2014 +0000
@@ -10,10 +10,12 @@
 
 uint8_t debug_alive = 0;
 uint8_t debug_sip = 0;
+uint8_t debug_vector = 0;
+uint8_t debug_cb = 0;
 uint8_t pcks_s = 0;
 uint8_t pshowcb = 0;
 
-uint8_t test_debug = 0;
+uint8_t test_debug = 1;
 #define PVERSION 1          // Sempre atualizar a versao do prompt
 
 #define DEBUGBUFSIZE 50
@@ -117,7 +119,8 @@
         fip = fopen("/qspi/myip.txt", "r");
         if (fip == NULL){
             fip = fopen("/qspi/myip.txt", "w");
-            fprintf(fip, "%s\n\r",__MY_IP__);   //myip
+            //fprintf(fip, "%s\n\r",__MY_IP__);   //myip
+            fprintf(fip, "%s",__MY_IP__);   //myip
         }
         
         fserext = fopen("/qspi/myext.txt", "r");
@@ -133,7 +136,8 @@
         fsip = fopen("/qspi/serverip.txt", "r");
         if (fsip == NULL){
              fsip = fopen("/qspi/serverip.txt", "w");
-             fprintf(fsip, "%s\n\r",__SERVER_IP__ );  //asterisk ip
+             //fprintf(fsip, "%s\n\r",__SERVER_IP__ );  //asterisk ip
+             fprintf(fsip, "%s",__SERVER_IP__ );  //asterisk ip
         }
         
         fext = fopen("/qspi/peerext.txt", "r");
@@ -181,12 +185,13 @@
         fext = fopen( "/qspi/myext.txt", "w" );
         fserext = fopen( "/qspi/peerext.txt", "w" );
         
-        fprintf( fip, "%s\n\r", __MY_IP__  );   //myip
+        //fprintf( fip, "%s\n\r", __MY_IP__  );   //myip
+        fprintf( fip, "%s", __MY_IP__  );   //myip
         fprintf( fport, "%d\n\r", __MY_PORT__ );  //mysipport
-        //fprintf( fext, "%d\n\r", __MY_EXT__ );  //myext
-        fprintf( fext, "%d\n\r", 820 );  //myext
+        fprintf( fext, "%d\n\r", __MY_EXT__ );  //myext
         
-        fprintf( fsip, "%s\n\r", __SERVER_IP__  );  //asterisk ip
+        //fprintf( fsip, "%s\n\r", __SERVER_IP__  );  //asterisk ip
+        fprintf( fsip, "%s", __SERVER_IP__  );  //asterisk ip
         fprintf( fserext, "%d\n\r",__PEER_EXT__ );  //asterisk port
         fprintf( fsport, "%d\n\r",__SERVER_PORT__ );  //asterisk port
         
@@ -200,7 +205,6 @@
     }
     
 }
-
 void init_fsystem(){                 
    //  init file system and check if files exist
     if (!qspifs.isformatted()) {
@@ -223,19 +227,28 @@
             // imput do teclado
             b = pc.getc();
             
-            if ( b == 0x0D ){ // enter
+            if( b == 0x0D ){ // enter
                 bufret = 1;
-            }
-            else{
-                pc.putc(b); 
-                debug_buf[bufptr] = b;
-                bufptr++;
+            }else{
+                //FIXME como mudar o contador quando eu aperto backspace
+                pc.putc( b );
+                if( b == 0x08 || b == 0x7F ){ // BS | DEL
+                    if( bufptr > 0 ) debug_buf[ --bufptr ] = 0;
+                    //bufptr--;
+                    //pc.printf(".");
+                }else{  
+                    debug_buf[bufptr] = b;
+                    //pc.printf("(%x)", (uint8_t)b );
+                    bufptr++;
+                }
             }
         }
         
     // Prompt commands here
-    if (bufret == 1) {     
+    if ( bufret == 1 ) {     
         bool miss_match = true;
+        static unsigned int promptcb_last_ext = 0;                                                                                                                                
+        static unsigned int promptcb_last_port = 0;  
         
         if( !bufptr ){
             miss_match = false;
@@ -255,7 +268,8 @@
         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));
+            //fprintf(fip,"%s\n\r",(debug_buf+6));
+            fprintf(fip,"%s",(debug_buf+6));
             fclose(fip);
             pc.printf("\n\r");
             files('s');
@@ -310,7 +324,8 @@
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "serverip ",9 )) {
             miss_match = false;
             fsip = fopen("/qspi/serverip.txt", "w");
-            fprintf(fsip,"%s\n\r",(debug_buf+9));
+            //fprintf(fsip,"%s\n\r",(debug_buf+9));
+            fprintf(fsip,"%s",(debug_buf+9));
             fclose(fsip);
             pc.printf("\n\r");
             files('s');
@@ -379,18 +394,17 @@
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_sip ", 10 )) {
             if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "on",2 )) {
                 miss_match = false;
-                debug_msg( "Sip Debug ON" );
+                pc.printf( "\n\rSip Debug ON\n\r" );
                 debug_sip = 1;
             }
             if (xmemmatch( (uint8_t*)(debug_buf + 10 ), (uint8_t*) "off",3 )) {
                 miss_match = false;
-                debug_msg( "Sip Debug OFF" );
+                pc.printf( "\n\rSip Debug OFF\n\r" );
                 debug_sip = 0;
             }
         }
-        
+
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9)) {         //promptcb ramal porta comando
-            miss_match = false;
             static int id_msg = 0x10;
             uint8_t write_buffer[300];
             unsigned int ext,port;
@@ -402,10 +416,23 @@
             ant1 = str2uint( (debug_buf+9), &ext);
             ant2 = str2uint( ((debug_buf+9)+ant1+1), &port);
 
-            pc.printf("ext=%d port=%d\r\ncmd=%s",ext, port, debug_buf+9+ant1+2+ant2);
+            promptcb_last_ext = ext;
+            promptcb_last_port = port;
+            pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",ext, port, debug_buf+9+ant1+2+ant2);
+            promptcb_last_ext = ext;
+            __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, debug_buf+9+ant1+2+ant2, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
+            pc.printf("\n\rComando enviado\n\r");
+        }
+        if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "pcb ",4 )) {
+            static int id_msg = 0x30;
+            uint8_t write_buffer[300];
+            debug_buf[bufptr++] = 0x0D;
+            debug_buf[bufptr++] = 0x00;
 
-            __send_to_cb__( __build_cb_package__( ext, port, __PROMPT__, debug_buf+9+ant1+2+ant2, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-            pc.printf("Comando enviado");
+            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");
         }
 
         if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "cks",3 )) {
@@ -497,8 +524,7 @@
 
         }
         */
-        if( miss_match ) pc.printf("--> %s: command not found\n\r", debug_buf );
-        pc.printf("> ");
+        if( miss_match ) pc.printf("\n\r%s: command not found\n\r", debug_buf );
     }
     
     if ( b == 0x0D || bufret == 1 || bufptr > DEBUGBUFSIZE ) {
@@ -509,5 +535,6 @@
         bufret = 0;
         pc.putc(0x0A);
         pc.putc(0x0D);
+        pc.printf("> ");
     }
 }   
\ No newline at end of file