![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: prompt.cpp
- Revision:
- 21:0bd688722e81
- Parent:
- 20:2d6ab23956e5
- Child:
- 22:d2a4b5939115
diff -r 2d6ab23956e5 -r 0bd688722e81 prompt.cpp --- a/prompt.cpp Sat Sep 20 13:34:52 2014 +0000 +++ b/prompt.cpp Sat Sep 20 20:28:24 2014 +0000 @@ -3,13 +3,14 @@ #include "configs.h" #include "vz_protocol.h" #include "parallelcpld.h" +#include "flood.h" //#include "debug.h" -uint8_t debug_alive = 1; +uint8_t debug_alive = 0; #define PVERSION 1 // Sempre atualizar a versao do prompt -#define DEBUGBUFSIZE 40 +#define DEBUGBUFSIZE 50 char debug_buf[DEBUGBUFSIZE]; FILE *fip,*fmask,*fgate,*fport,*fsip,*fsport; uint8_t dog = 1; @@ -38,6 +39,19 @@ while (size--) *dest++ = *src++; } +int str2uint (char * s, unsigned int * val) { + int i = 0; + unsigned int ret = 0; + for (;;) { + if (s[i] < '0') { + *val = ret; + return i; + } + ret *= 10; + ret += s[i] - '0'; + i++; + } +} void cat(const char* fname) // Print the content of a given file { @@ -166,7 +180,6 @@ void prompt_process(){ // main prompt process volatile char b = 0; static uint8_t bufret = 0; - static bool test = false; if (pc.readable()){ @@ -264,37 +277,48 @@ dog = 0; } - if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "debug off" )) { - pc.printf("Disable debug"); - debug_alive = 0; - } + if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "flood ",6 )) { + if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )){ + pc.printf("\n\r\t Flood ON\n\r\t"); + tflood.start(); + tflood.reset(); + floodcount =0; + pflood = 1; + } + if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )){ + pc.printf("\n\r\t Flood OFF\n\r\t"); + pflood = 0; + tflood.stop(); + } + } - if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "debug on" )) { - pc.printf("Disable debug"); - debug_alive = 1; - } - - if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "test on" )) { - test = true; + if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug ",6 )) { + if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "on",2 )){ + pc.printf("\n\r\tDebug ON\n\r\t"); + debug_alive = 1; + } + if (xmemmatch( (uint8_t*)(debug_buf+6), (uint8_t*) "off",3 )){ + pc.printf("\n\r\tDebug OFF\n\r\t"); + debug_alive = 0; + } } - if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "test off" )) { - test = false; - } - - if( test ){ - static int id_msg = 0x10; - static int value = 0x00; - char data[ 300 ]; - uint8_t write_buffer[ 300 ]; - for( register int i = 0; i < 300; i++ ) data[ i ] = value; + if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "promptcb ", 9)) { //promptcb ramal porta comando + static int id_msg = 0x10; + uint8_t write_buffer[300]; + unsigned int ext,port; + int ant1,ant2; - if( ++value == 255 ){ - value = 0x00; - pc.printf("\n\rPkgs enviados\n\r"); - } - __send_to_cb__( __build_cb_package__( 5002, 5002, __TEST__, data, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) ); - __send_to_cb__( __build_cb_package__( 5003, 5003, __TEST__, data, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) ); + debug_buf[bufptr++] = 0x0D; + debug_buf[bufptr++] = 0x00; + + ant1 = str2uint( (debug_buf+9), &ext); + ant2 = str2uint( ((debug_buf+9)+ant1+1), &port); + + pc.printf("\r\next=%d port=%d\r\ncmd=%s\r\n",ext, port, debug_buf+9+ant1+2+ant2); + + __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"); }