![](/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:
- 99:e80850c51106
- Parent:
- 98:43b45f26b430
- Child:
- 100:09a23fcd3bdf
--- a/prompt.cpp Sun Jan 11 03:30:47 2015 +0000 +++ b/prompt.cpp Mon Jan 19 18:00:42 2015 +0000 @@ -12,7 +12,7 @@ char tmp_cmd[ DEBUGBUFSIZE ] = "help"; char last_debug_buf[ DEBUGBUFSIZE ] = "help"; -FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext, *fudpport, *ftcpport, *ftip, *ftport, *fmax, *fmin; +FILE *fip, *fmask, *fgate, *fport, *fsip, *fsport, *fext, *fserext, *fudpport, *ftcpport, *ftip, *ftport, *ffwip, *ffwport, *fmax, *fmin; uint8_t bufptr = 0; uint8_t last_bufptr = 0; @@ -176,6 +176,56 @@ cat("/qspi/telemetry_port.txt"); + /* + pc.printf("FW Server IP "); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FW Server IP " ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + + cat("/qspi/fw_ip.txt"); + + pc.printf("FW Server Port "); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Fw Server Port " ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + + cat("/qspi/fw_port.txt"); + */ + + pc.printf("FW Server IP "); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FW Server IP " ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + + cat("/qspi/fw_ip.txt"); + + pc.printf("FW Server Port "); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FW Server Port " ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + + cat("/qspi/fw_port.txt"); + pc.printf("Max Ext "); if( from_eth ){ snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Max Ext " ); @@ -215,21 +265,28 @@ if (type == 'c' ){ // close all files - fclose( fip ); - fclose( fmask ); - fclose( fgate ); - fclose( fport ); - fclose( fsip ); - fclose( fsport ); - fclose( fext ); - fclose( fserext ); - fclose( fudpport ); - fclose( ftcpport ); - fclose( fmax ); - fclose( fmin ); + debug_msg(""); + if( fip ) fclose( fip ); + if( fmask ) fclose( fmask ); + if( fgate ) fclose( fgate ); + if( fport )fclose( fport ); + if( fsip ) fclose( fsip ); + if( fsport ) fclose( fsport ); + if( fext ) fclose( fext ); + if( fserext ) fclose( fserext ); + if( fudpport ) fclose( fudpport ); + if( ftcpport ) fclose( ftcpport ); + if( fmax ) fclose( fmax ); + if( fmin ) fclose( fmin ); + if( ftip ) fclose( ftip ); + if( ftport ) fclose( ftport ); + if( ffwip ) fclose( ffwip ); + if( ffwport) fclose( ffwport ); + debug_msg(""); } if (type == 'i' ){ + debug_msg(""); // Check if files exist, if not create the files //fixme criar um bool pra cada file bool exists = true; @@ -239,80 +296,119 @@ set_ip( __MY_IP__ ); exists = false; } + //fclose( fip ); fserext = fopen("/qspi/myext.txt", "r"); if( fserext == NULL ){ set_header_ext( __MY_EXT__ ); exists = false; } + //fclose( fserext ); fport = fopen("/qspi/mysipport.txt", "r"); if (fport == NULL){ set_header_sip_port( __MY_PORT__ ); exists = false; } + //fclose( fport ); + fsip = fopen("/qspi/serverip.txt", "r"); if (fsip == NULL){ set_server_ip( __SERVER_IP__ ); exists = false; } + //fclose( fsip ); fext = fopen("/qspi/peerext.txt", "r"); if ( fext == NULL ){ set_server_ext( __PEER_EXT__ ); exists = false; } + //fclose( fext ); + fsport = fopen("/qspi/serverport.txt", "r"); if (fsport == NULL){ set_server_port( __SERVER_PORT__ ); exists = false; } + //fclose( fsport ); fmask = fopen("/qspi/mymask.txt", "r"); if (fmask == NULL){ set_mask( __MY_MSK__ ); exists = false; } + //fclose( fmask ); + fgate = fopen("/qspi/mygateway.txt", "r"); if (fgate == NULL){ set_gateway( __MY_GTW__ ); exists = false; } + //fclose( fgate ); + fudpport = fopen("/qspi/udpport.txt", "r" ); if( fudpport == NULL ){ set_udp_port_listener( UDP_PORT_LISTENER ); exists = false; } + //fclose( fudpport ); + ftcpport = fopen("/qspi/tcpport.txt", "r" ); if( ftcpport == NULL ){ set_tcp_port_listener( TCP_PORT_LISTENER ); exists = false; } + //fclose( ftcpport ); ftip = fopen("/qspi/telemetry_ip.txt", "r" ); if( ftip == NULL ){ set_telemetry_ip( __TELEMETRY_SERVER_IP__ ); exists = false; } + //fclose( ftip ); ftport = fopen("/qspi/telemetry_port.txt", "r" ); if( ftport == NULL ){ set_telemetry_port( __TELEMETRY_SERVER_PORT__ ); exists = false; } + //fclose( ftport ); - fmax = fopen("/qspi/maxext.txt", "r" ); - if( fmax == NULL ){ - set_max_ext( MAX_EXT ); + debug_msg(""); + ffwip = fopen("/qspi/fw_ip.txt", "r" ); + if( ffwip == NULL ){ + set_fw_ip( __FW_SERVER_IP__ ); exists = false; } - + debug_msg(""); + //fclose( ffwip ); + debug_msg(""); + ffwport = fopen("/qspi/fw_port.txt", "r" ); + if( ffwport == NULL ){ + set_fw_port( __FW_SERVER_PORT__ ); + exists = false; + } + //fclose( ffwport ); + debug_msg(""); + fmax = fopen("/qspi/maxext.txt", "r" ); + debug_msg(""); + if( fmax == NULL ){ + debug_msg(""); + set_max_ext( MAX_EXT ); + debug_msg(""); + exists = false; + debug_msg(""); + } + //fclose( fmax ); + debug_msg(""); fmin = fopen("/qspi/minext.txt", "r" ); if( fmin == NULL ){ set_min_ext( MIN_EXT ); exists = false; } - + //fclose( fmin ); + debug_msg(""); if( !exists ){ pc.printf("\n\rDefault configurations set!\n\r"); if( from_eth ){ @@ -320,13 +416,13 @@ debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; if( tcp_session ){ tcp_client.send_all( debug_buf, strlen( debug_buf ) ); - //debug_buf[ 0 ] = 0; - //bufptr = 0; bufptr = 0; for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0; } } } + debug_msg(""); + reset_leds(); } if (type == 'r' ){ @@ -343,6 +439,8 @@ ftcpport = fopen( "/qspi/tcpport.txt", "r" ); ftip = fopen("/qspi/telemetry_ip.txt", "r" ); ftport = fopen("/qspi/telemetry_port.txt", "r" ); + ffwip = fopen("/qspi/fw_ip.txt", "r" ); + ffwport = fopen("/qspi/fw_port.txt", "r" ); fmax = fopen("/qspi/maxext.txt", "r" ); fmin = fopen("/qspi/minext.txt", "r" ); } @@ -374,6 +472,10 @@ set_telemetry_port( __TELEMETRY_SERVER_PORT__ ); + set_fw_ip( __FW_SERVER_IP__ ); + + set_fw_port( __FW_SERVER_PORT__ ); + set_max_ext( MAX_EXT ); set_min_ext( MIN_EXT ); @@ -389,8 +491,6 @@ }else if( udp_request ){ udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); } - //debug_buf[ 0 ] = 0; - //bufptr = 0; bufptr = 0; for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0; } @@ -410,6 +510,8 @@ ftcpport = fopen( "/qspi/tcpport.txt", "w" ); ftip = fopen("/qspi/telemetry_ip.txt", "w" ); ftport = fopen("/qspi/telemetry_port.txt", "w" ); + ffwip = fopen("/qspi/fw_ip.txt", "w" ); + ffwport = fopen("/qspi/fw_port.txt", "w" ); fmax = fopen("/qspi/maxext.txt", "w" ); fmin = fopen("/qspi/minext.txt", "w" ); @@ -431,6 +533,9 @@ fprintf( ftip, "%s\n\r","" ); fprintf( ftport, "%i\n\r",0 ); + fprintf( ffwip, "%s\n\r","" ); + fprintf( ffwport, "%i\n\r",0 ); + fprintf( fmax, "%i\n\r", 0 ); fprintf( fmin, "%i\n\r", 0 ); @@ -804,6 +909,18 @@ set_telemetry_port( atoi( debug_buf + 15 ) ); files('s'); } + + else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "fw_ip ", 6 ) ){ + miss_match = false; + set_fw_ip( debug_buf + 6 ); + files('s'); + } + + else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "fw_port ", 8 ) ){ + miss_match = false; + set_fw_port( atoi( debug_buf + 8 ) ); + files('s'); + } else if( xstrmatch( (uint8_t*)debug_buf, (uint8_t*) "dconfig" ) ){ miss_match = false; @@ -1488,10 +1605,6 @@ strcpy( promptcb_last_cmd, cmd ); strcat( cmd, "\r\r\r\n" ); - //send_msg( "Tamanho do cmd == %d", strlen( cmd ) ); - - //for( register uint16_t i = strlen( cmd ); i < __CB_BUFFER_SIZE__; i++ ) cmd[ i ] = 0; - pc.printf("\r\next=%d port=%d cmd=%s", ext, port, cmd ); send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) ); pc.printf("\n\rComando enviado"); @@ -1507,12 +1620,54 @@ } debug_buf = ref; - //bufptr = 0; - //debug_buf[ 0 ] = 0; bufptr = 0; for( uint8_t i = 0; i < DEBUGBUFSIZE; i++ ) debug_buf[ i ] = 0; } + else if( xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "rush ", 5 )) { + miss_match = false; + int ext,port; + char *split, *ref, cmd[ 32 ]; + + ref = debug_buf; + + strcat( debug_buf, "\r" ); + + split = strtok( debug_buf + 5, " " ); + ext = atoi( split ); + + split += strlen( split ) + 1; + split = strtok( NULL, " " ); + port = atoi( split ); + + strcpy( cmd, "ping\r\n" ); + + promptcb_last_ext = ext; + promptcb_last_port = port; + + strcpy( promptcb_last_cmd, cmd ); + strcat( cmd, "\r\r\r\n" ); + + for( register uint8_t i = 0; i < 3; i++ ){ + pc.printf("\r\next=%d port=%d cmd=%s", ext, port, cmd ); + send2callboxes( __build_cb_package__( ext, port, __PROMPT__, cmd, id_msg++, __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) ); + pc.printf("\n\rComando enviado"); + + if( from_eth ){ + char eth_msg[ 512 ]; + snprintf( eth_msg, 512 - 1, "\r\next=%d port=%d cmd=%s\r\nComando enviado\n\r", ext, port, cmd ); + 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; + } @@ -1578,24 +1733,108 @@ } } - else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "debug_cb_rx ", 12 )) { - if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "on",2 )) { + else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dboot ", 6 ) ){ + if (xmemmatch( (uint8_t*)( debug_buf + 6 ), (uint8_t*) "on", 2 ) ){ + miss_match = false; + pc.printf("\r\nBoot Debug ON"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Boot Debug On\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_boot = true; + } + if (xmemmatch( (uint8_t*)( debug_buf + 6 ), (uint8_t*) "off", 3 ) ){ + miss_match = false; + pc.printf("\r\nBoot Debug OFF"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Boot Debug Off\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_boot = false; + } + } + + else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dfw ", 4 ) ){ + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "on", 2 ) ){ + miss_match = false; + pc.printf("\r\nFW Debug ON"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FW Debug On\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_fw = true; + } + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "off", 3 ) ){ + miss_match = false; + pc.printf("\r\nFW Debug OFF"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FW Debug Off\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_fw = false; + } + } + + else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dfwp ", 5 ) ){ + if (xmemmatch( (uint8_t*)( debug_buf + 5 ), (uint8_t*) "on", 2 ) ){ + miss_match = false; + pc.printf("\r\nFWPrint Debug ON"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FWPrint Debug On\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_fw_print = true; + } + if (xmemmatch( (uint8_t*)( debug_buf + 5 ), (uint8_t*) "off", 3 ) ){ + miss_match = false; + pc.printf("\r\nFWPrint Debug OFF"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "FWPrint Debug Off\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_fw_print = false; + } + } + + else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "drx ", 4 )) { + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "on",2 )) { miss_match = false; pc.printf("\tDebug Cbx Rx ON"); if( from_eth ){ - snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx On Rx on\n\r" ); + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\tDebug Cbx On Rx on\n\r" ); debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; } debug_cb_rx = true; } - if (xmemmatch( (uint8_t*)( debug_buf + 12 ), (uint8_t*) "off",3 )) { + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "off",3 )) { miss_match = false; - pc.printf("Debug Cbx Rx OFF"); + pc.printf("\tDebug Cbx Rx OFF"); if( from_eth ){ - snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug Cbx Rx Off\n\r" ); + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\tDebug Cbx Rx Off\n\r" ); debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; } - debug_cb_rx = 0; + debug_cb_rx = false; + } + } + + else if (xmemmatch( (uint8_t*)debug_buf, (uint8_t*) "dtx ", 4 )) { + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "on",2 )) { + miss_match = false; + pc.printf("\tDebug Cbx Rx ON"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\tDebug Cbx On Rx on\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_cb_tx = true; + } + if (xmemmatch( (uint8_t*)( debug_buf + 4 ), (uint8_t*) "off",3 )) { + miss_match = false; + pc.printf("\tDebug Cbx Rx OFF"); + if( from_eth ){ + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\tDebug Cbx Rx Off\n\r" ); + debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; + } + debug_cb_tx = false; } } @@ -1604,7 +1843,7 @@ miss_match = false; pc.printf("\tDebug File ON"); if( from_eth ){ - snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File On\n\r" ); + snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "\tDebug File On\n\r" ); debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; } debug_cb_rx = true; @@ -1616,7 +1855,7 @@ snprintf( debug_buf, __PROMPT_ETH_BUFFER_SIZE__, "Debug File Off\n\r" ); debug_buf[ strlen( debug_buf ) - 1 ] = '\0'; } - debug_cb_rx = 0; + debug_cb_rx = false; } } @@ -1780,6 +2019,25 @@ } } + pc.printf("fw_ip - Configura o IP do servidor de fw\n\r"); + if( from_eth ){ + snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "fw_ip - Configura o IP do servidor de fw\n\r" ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + pc.printf("fw_port - Configura a porta do servidor de fw\n\r"); + if( from_eth ){ + snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "fw_port - Configura a porta do servidor de fw\n\r" ); + if( tcp_session ) while( !( tcp_client.send_all( debug_buf, strlen( debug_buf ) ) ) ); + + else if( udp_request ){ + udp_server.sendTo( udp_client, debug_buf, strlen( debug_buf ) ); + } + } + pc.printf("maxext - Configura o maior ramal possivel de ser registrado nesse ramo\n\r"); if( from_eth ){ snprintf( debug_buf,__PROMPT_ETH_BUFFER_SIZE__, "maxext - Configura o maior ramal possivel de ser registrado nesse ramo\n\r" );