![](/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: main.cpp
- Revision:
- 62:07e5bdc9f8f7
- Parent:
- 58:af7e8788f106
- Child:
- 63:0d95da692bb4
--- a/main.cpp Fri Oct 24 16:38:47 2014 +0000 +++ b/main.cpp Tue Oct 28 11:32:06 2014 +0000 @@ -46,6 +46,9 @@ /* ponteiro que aponta para os dados vindo do CPLD */ uint8_t * buffer_from_cb_ptr = ( uint8_t * )RXBuffer; + /* Armazena o ultimo pacote recebido dos CBx */ + uint8_t cb_rx_buffer[ __CB_BUFFER_SIZE__ ]; + /* referencia para os dados contidos no pacote, sem o header */ uint8_t * data = NULL; @@ -87,13 +90,60 @@ udp_timer.start(); send_msg("Ready"); uint8_t before = t.read(); + static uint8_t count = 0; while( true ){ //FIXME colocar uma condicao aqui prompt_process( NULL ); wdt.kick(); + + if( rx ){ + char str[ 1024 ]; + strcpy( str, "RX :: " ); + for( register uint16_t i = 0; i < __CB_BUFFER_SIZE__; i++ ){ + char tmp[ 16 ]; + strcat( str, itoa( cb_rx_buffer[ i ], tmp, 16 ) ); + if( ( i != 0 ) && !( i % 15 ) ) strcat( str, "\n\r " ); + + else strcat( str, " " ); + } + send_msg( "%s", str ); + rx = false; + } + + if( list ){ + send_msg("Registred %d CBx", v_cb->size() ); + if( v_cb->size() == 0 ){ + send_msg("{-/-}"); + }else if( v_cb->size() == 1 ){ + Call_Box * cb = ( Call_Box * )v_cb->get_element( 0 ); + send_msg(" %d ", cb->get_ext() ); + }else{ + char str[ 1024 ]; + int ext_list[ 128 ]; + Call_Box * cb = NULL; + register int i = 0; + for( ; i < v_cb->size(); i++ ){ + cb = ( Call_Box * )v_cb->get_element( i ); + ext_list[ i ] = cb->get_ext(); + } + + qsort( ext_list, v_cb->size(), sizeof( int ), ls_comp ); + + char aux[ 16 ]; + strcpy( str, "\r\n " ); + for( i = 0; i < v_cb->size() - 1; i++ ){ + sprintf( aux, "%i, ", ext_list[ i ] ); + strcat( str, aux ); + if( ( i != 0 ) && !( ( i + 1 ) % 8 ) ) strcat( str, "\r\n " ); + } + sprintf( aux, "%i ", ext_list[ i ] ); + strcat( str, aux ); + send_msg( "%s", str ); + } + list = false; + } + if (pcks_s == 1){ - //pc.printf("\n\r PKG_CSK OK: %d", pkg_cksok); - //pc.printf("\n\r PKG_CSK ERR: %d\n\r", pkg_ckserr); send_msg("PKG_CSK OK: %d :: PKG_CSK ERR: %d", pkg_cksok, pkg_ckserr ); pcks_s =0; } @@ -122,22 +172,20 @@ send_msg("{-/-}"); }else if( v_cb->size() == 1 ){ Call_Box * cb = ( Call_Box * )v_cb->get_element( 0 ); - send_msg("{ %d }", cb->get_ext() ); + send_msg(" %i ", cb->get_ext() ); }else{ register uint8_t i; char aux[ 16 ]; Call_Box * cb = NULL; - strcpy( str, "{ " ); for( i = 0; i < v_cb->size() - 1; i++ ){ cb = ( Call_Box * )v_cb->get_element( i ); - sprintf( aux, "%5d, ", cb->get_ext() ); + sprintf( aux, "%i, ", cb->get_ext() ); strcat( str, aux ); - if( ( i != 0 ) && !( i % 10 ) ) strcat( str, "\n\r " ); + if( ( i != 0 ) && !( ( i + 1 ) % 8 ) ) strcat( str, "\n\r " ); } cb = ( Call_Box * )v_cb->get_element( i ); - sprintf( aux, "%5d ", cb->get_ext() ); + sprintf( aux, "%i ", cb->get_ext() ); strcat( str, aux ); - strcat( str, " }" ); send_msg( "%s", str ); } } @@ -145,6 +193,7 @@ if( pflood == 1 ) flood(); if( status != __WAITING__ ){ + xmemcpy( cb_rx_buffer, buffer_from_cb_ptr, __CB_BUFFER_SIZE__ ); __read_cb_buffer__( buffer, buffer_from_cb_ptr ); status = __WAITING__; @@ -182,9 +231,8 @@ } if( t.read() > 5 ){ - static uint8_t count = 0; - static int test_ext = 65531; - static int test_port = 65531; + static int test_ext = 5010; + static int test_port = 5010; //send_msg("from_eth = %s - tcp_session = %s", ( from_eth ) ? "true" : "false", ( tcp_session ) ? "true" : "false" ); if( debug_alive ){ send_msg("Registred %d CBx", v_cb->size() ); @@ -220,12 +268,12 @@ } } } - //if( count == 4 ){ - //debug_msg("Colocar simulacoes de cbx aqui"); - //main_test = true; - //} if( main_test ){ + data = buffer; + ext = test_ext++ + ( ( test_ext % 2 ) ? 100 : 50 ); + port = test_port++; + type = __REGISTRY__; } /* @@ -403,17 +451,18 @@ tcp_client.send_all( tmp, strlen( tmp ) ); } */ - for( register int i = 0; i < __CB_BUFFER_SIZE__; i++ ){ + for( register int i = 0; i < 32; i++ ){ pc.printf("%3i ", data[ i ] ); + if( i == 15 ) pc.printf( "\r\n" ); } - //FIXMEj isso nao vai funcionar em udp, mudar pra send_msg - pc.printf("\n\r"); + pc.printf("\n\r> "); if( tcp_session ){ char aux[ __CB_BUFFER_SIZE__ + 3 ]; strncpy( aux, (char * )data, __CB_BUFFER_SIZE__ ); strcat( aux, "\n\r\0" ); tcp_client.send_all( ( char *)data, strlen( (char * )data ) ); + tcp_client.send_all( "\r\n> ", strlen( "\r\n> " ) ); } }break; case __AUDIO__ : {