Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: prompt.cpp
- 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