Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
74:81c47fff88a5
Parent:
72:895ca792c647
Child:
78:1353744f01e1
--- a/utils.cpp	Wed Nov 19 14:06:13 2014 +0000
+++ b/utils.cpp	Mon Nov 24 16:43:16 2014 +0000
@@ -1,13 +1,6 @@
 #include "utils.h"
-#include "prompt.h"
 
-EthernetInterface eth;
-uint8_t cb_tx_buffer[ __CB_BUFFER_SIZE__ ];
-
-ring_buffer * rb = ring_buffer_init( NULL );
-                                                                                      
-UDPSocket t_sock;                                                                                                                      
-Endpoint t_server;
+int ls_comp( const void * a, const void * b ){ return( *( int * )a - *( int * )b ); }
 
 void reverse( char str[], int length ){
     int start = 0;
@@ -45,336 +38,30 @@
     return( str );
 }
 
-void reset_leds( void ){
-    led1 = led2 = 1;
-    led3 = led4 = 0;
-}
+void reset_leds( void ){ led1 = led2 = 1; led3 = led4 = 0; }
 
-int __init_eth__(){    
-    static bool initialized = false;
-    char buff_ip[ 16 ] = "";
-    char buff_msk[ 16 ] = "";
-    char buff_gtw[ 16 ] = "";
-    wdt.kick();
-    pc.printf("\n\r");
-    FILE *fp = fopen( "/qspi/myip.txt", "r");
-    if( fp == NULL ){
-        if( debug_file ) debug_msg("Failed to open /qspi/myip.txt" );
-        strncpy( buff_ip, __MY_IP__, 20 );    
-    }else{
-        int read = fread( buff_ip, 1, 512, fp );
-        if( read > 0 ){
-            for( int i = 0; i < read; i++ ) 
-                if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){
-                    buff_ip[ i ] = '\0';
-                    break;
-                }
-            if( debug_file ) debug_msg("Eth ip %s", buff_ip );
-        }else{
-            if( debug_file ) debug_msg("Failed to read /qspi/myip.txt" );
-            strncpy( buff_ip, __MY_IP__, 20 );
-        }
-    }
-    fclose( fp );
-    buff_ip[ 15 ] = 0;
-        
-    fp = fopen( "/qspi/mymask.txt", "r");
-    if( fp == NULL ){
-        if( debug_file ) debug_msg("Failed to open /qspi/mymask.txt" );
-        strncpy( buff_msk, __MY_MSK__, 20 );    
-    }else{
-        int read = fread( buff_msk, 1, 512, fp );
-        if( read > 0 ){
-            for( int i = 0; i < read; i++ ) 
-                if( buff_msk[ i ] == '\n' || buff_msk[ i ] == '\r' ){
-                    buff_msk[ i ] = '\0';
-                    break;
-                }
-            if( debug_file ) debug_msg("mascara de rede Eth %s", buff_msk );
-        }else{
-            if( debug_file ) debug_msg("Failed to read /qspi/mymask.txt" );
-            strncpy( buff_msk, __MY_MSK__, 20 );
-        }
-    }
-    fclose( fp );
-    buff_msk[ 15 ] = 0;
-    
-    fp = fopen( "/qspi/mygate.txt", "r");
-    if( fp == NULL ){
-        if( debug_file ) debug_msg("Failed to open /qspi/mygate.txt" );
-        strncpy( buff_gtw, __MY_GTW__, 20 );    
-    }else{
-        int read = fread( buff_gtw, 1, 512, fp );
-        if( read > 0 ){
-            for( int i = 0; i < read; i++ ) 
-                if( buff_gtw[ i ] == '\n' || buff_gtw[ i ] == '\r' ){
-                    buff_gtw[ i ] = '\0';
-                    break;
-                }
-            if( debug_file ) debug_msg("Ip Gateway Eth %s", buff_gtw );
-        }else{
-            if( debug_file ) debug_msg("Failed to read /qspi/mygate.txt" );
-            strncpy( buff_gtw, __MY_GTW__, 20 );
-        }
-    }
-    fclose( fp );
-    buff_gtw[ 15 ] = 0;
-    
-    if( !initialized ){
-        //eth.init( buff_ip, buff_msk, buff_gtw );
-        eth.init( buff_ip, buff_msk, __MY_GTW__ );
-        initialized = true;
-        return eth.connect();
-    }
-    
-    if( !eth.disconnect() ){
-        return eth.connect();
-    }
-    else{
-        return eth.connect();
-    }
-}
-
-Call_Box * __find_CB__( Vector * v_cb, int ext ){
-    Call_Box * cb = NULL;
-    for( register int i = 0; i < v_cb->size(); i++ ){
-        cb = ( Call_Box * )v_cb->get_element( i );
-        if( cb->get_ext() == ext ) return( cb );
-    }
-    return( NULL );
-}
-
-VZ_call * __find_Call__( Vector * v_call, int ext ){
-    VZ_call * call = NULL;
-    for( register int i = 0; i < v_call->size(); i++ ){
-        call = ( VZ_call * )v_call->get_element( i );
-        if( call->get_cb_ext() == ext ) return( call );
-    }
-    return( NULL );
-}
-
-void registry_aging( Vector * v_cb, uint8_t * data, uint8_t * write_buffer ){
-    Call_Box * cb = NULL;
-    if( v_cb && data && write_buffer ){
-        for( register int i = 0; i < v_cb->size(); i++ ){
-            cb = (Call_Box * )v_cb->get_element( i );
-            if( cb->is_timeout() ){
-                if( cb->reconfigure_timeout() == 0x00 ){
-                    if( debug_alive ) debug_msg("( ext %d removed )", cb->get_ext() );
-                    //cb->unregistry();
-                    v_cb->remove_element( i );
-                    delete( cb );
-                    break;
-                }else{
-                    if( debug_alive ) debug_msg("Ping Cbx %d", cb->get_ext() );      
-                    cb->set_msg_id( ( ( cb->get_msg_id() ) + 1 ) & ( BIT7 ^ 0xff ) );                
-                    __send_to_cb__( __build_cb_package__( cb->get_ext(), cb->get_port(), __REGISTRY__, 
-                        ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                    cb->registry();
-                }
-            }
-        }
-    }
-}
-
-int sip_manager( Vector * v_cb ){ 
-    static int index = 0;
-    if( v_cb != NULL ){
-        if( v_cb->size() > 0 ){
-            if( index >= v_cb->size() ) index = 0;    
-        }else return 0;
-        Call_Box * cb = (Call_Box * )v_cb->get_element( index );
-        /*  Retorna 
-            = 0 :: ok
-            < 0 :: tive problemas
-            > 0 :: devo remover essa call do vetor de calls 
-        */
-        int returned_value = 0;
-        
-        if( cb->status == cb_on_call || cb->status == cb_idle ){
-            //debug_msg("");
-            returned_value = cb->listen_SIP_server();
-        }
-        index++;
-        return( returned_value );
-    }
-    led1 = !led1;
-    return( -1 );
+int convert_ext_to_port( int ext ){
+  if( ext < 1000 ) return ext;
+  
+  else{
+      int aux = 0;
+      aux = ( ext / 1000 ) * 1000;
+      ext -= aux;
+      aux += ext % 100;
+      return( aux );
+  }
 }
 
-/* remove calls por timeout */
-void call_manager( Vector * v_call, Vector * v_cb, uint8_t * data, uint8_t * write_buffer, Timeslice * ts ){
-    for( register int i = 0; i < v_call->size(); i++ ){
-        VZ_call * call = ( VZ_call * )v_call->get_element( i );
-        if( call->is_timetofinish() ){
-            v_call->remove_element( i );
-            Call_Box * cb = __find_CB__( v_cb, call->get_cb_ext() );
-            if( cb ){ 
-                cb->status = cb_idle;
-                ts->return_timeslice( cb->get_timeslice() );
-                cb->set_timeslice( 0x00 );
-                data[ __TIMESLICE_PLACE__ ] = 0x00;
-                cb->set_msg_id( ( ( cb->get_msg_id() ) + 1 ) & ( BIT7 ^ 0xff ) );
-                __send_to_cb__( __build_cb_package__( cb->get_ext(), cb->get_port(), __CB_BYE__, 
-                    ( char * )data, cb->get_msg_id(), __CB_BUFFER_SIZE__ - __VZ_HEADER_OFFSET__, write_buffer ) );
-                cb->send_bye();
-                set_status( cb->sip->status, sip_idle );
-                cb->re_start_timer();
-            }
-            delete( call );    
-        }
-    }    
+void xstrcpy(uint8_t * dest, const uint8_t * src ){
+  while (*src)  *dest++ = *src++;
+  *dest = 0; 
 }
 
-void build_telemetry_report( int ext, int port, char * data ){
-    char aux[ __CB_BUFFER_SIZE__ + 6 ];
-    char tmp[ 6 ];
-    strcpy( aux, itoa( ext, tmp, 10 ) );
-    strcat( aux, " " );
-    
-    //strncat( aux, (char * )data, __TELEMETRY_SIZE__ );
-    /*
-    pc.printf("\n\r 1. ");
-    uint8_t count = 2;
-    for( register int i = 0; i < __CB_BUFFER_SIZE__; i++ ){
-        if( i > 0 && !( i % 15 )  ) pc.printf("\n\r%2i. ", count++ );
-        pc.printf("%3x ", data[ i ] );
-    }
-    pc.printf("\n\r");
-    */
-    //pulando o byte de id ( sequence number )
-    data += __SEQ_NUM_SIZE__;
-    //pulando os bytes do clock
-    data += __CLOCK_SYNC_SIZE__;
-    
-    uint8_t offset = strlen( aux );
-    
-    for( register uint16_t i = 0; i < __TELEMETRY_SIZE__; i++ ) aux[ i + offset ] = data[ i ];
-    
-    for( register uint16_t i = __TELEMETRY_SIZE__ + offset; i < __CB_BUFFER_SIZE__; i++ ) aux[ i ] = 0;
-    
-        int sent = t_sock.sendTo( t_server, aux, __CB_BUFFER_SIZE__ );
-    if( debug_telemetry ) send_msg(" Valor de retorno sent-- %d ", sent );
-    
-    if( sent == -1 ){ 
-        re_start_telemetry();
-        sent = t_sock.sendTo( t_server, aux, __CB_BUFFER_SIZE__ );
-        
-        if( debug_telemetry ) send_msg(" Valor de retorno sent-- %d ", sent );
-    }
-    
-    if( debug_telemetry ){
-        pc.printf("\n\r 1. ");
-        uint8_t count = 2;
-        for( register int i = 0; i < __CB_BUFFER_SIZE__; i++ ){
-            if( i > 0 && !( i % 15 )  ) pc.printf("\n\r%2i. ", count++ );
-            pc.printf("%3x ", aux[ i ] );
-        }
-        pc.printf("\n\r");
-        
-        char msg_to_eth[ 1024 ];
-        strcpy( msg_to_eth, tmp );
-        strcat( msg_to_eth, " " );
-        for( register uint16_t i = 0; i < __TELEMETRY_SIZE__; i++ ){
-            strcat( msg_to_eth, itoa( data[ i ], tmp, 16 ) );
-            strcat( msg_to_eth, " " );
-        }
-        for( register uint16_t i = __TELEMETRY_SIZE__; i < __CB_BUFFER_SIZE__ - 1; i++ ){
-            strcat( msg_to_eth, itoa( 0, tmp, 16 ) );
-            strcat( msg_to_eth, " " );
-        }
-        strcat( msg_to_eth, itoa( 0, tmp, 16 ) );
-        
-        if( tcp_session ){ 
-            int debug_sent = tcp_client.send_all( msg_to_eth, strlen( msg_to_eth ) );
-            if( debug_telemetry ) send_msg("%d - bytes enviados pro prompt-eth", debug_sent );
-        }
-    }
+void xmemcpy(uint8_t * dest, uint8_t * src, uint16_t size ){
+  while (size--) *dest++ = *src++;
 }
 
-void __send_to_cb__( uint8_t * buffer ){
-    if( tx_clear == 1 ){
-        tx_clear = 0;
-        xmemcpy( TXBuffer, buffer, DATA_SIZE );
-        parallel_write( TXBuffer[ 0 ] );
-        DataReady = 1;
-        xmemcpy( cb_tx_buffer, buffer, __CB_BUFFER_SIZE__ );           
-        //send2callboxes();
-    }else{
-        uint8_t ret = ring_buffer_add( rb, buffer );
-        
-        if( ret == 0x01 ) if( dparallel ) send_msg("Error: Ring buffer fully charged");
-        
-        if( ret == 0x00 ) if( dparallel ) send_msg("Success : package queued -- on queue %u", rb->size );
-    }
-}
-
-void tx_buffer_ring_buffer_handler( void ){
-    if( rb->size != 0x00 ){
-        if( tx_clear == 1 ){
-            uint8_t * buffer = ring_buffer_get_next( rb );
-            xmemcpy( TXBuffer, buffer, DATA_SIZE );
-            xmemcpy( cb_tx_buffer, buffer, __CB_BUFFER_SIZE__ );
-            if( dparallel ) send_msg("Ring Buffer less one -- remain %u", rb->size );
-            send2callboxes();
-        }
-    }
-}
-
-void init_telemetry_handler( void ){
-    char buff_ip[ 16 ] = "";
-    char buff_port[ 8 ] = "";
-    int telemetry_port = 0;
-    
-    FILE *fp = fopen( "/qspi/telemetry_ip.txt", "r");
-    if( fp == NULL ){
-        if( debug_file ) debug_msg("Failed to open /qspi/telemetry_ip.txt" );
-        strncpy( buff_ip, __TELEMETRY_SERVER_IP__, 20 );    
-    }else{
-        int read = fread( buff_ip, 1, 512, fp );
-        if( read > 0 ){
-            for( int i = 0; i < read; i++ ) 
-                if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){
-                    buff_ip[ i ] = '\0';
-                    break;
-                }
-            if( debug_file ) debug_msg("Telemetry server ip %s", buff_ip );
-        }else{
-            if( debug_file ) debug_msg("Failed to open /qspi/telemetry_ip.txt" );
-            strncpy( buff_ip, __TELEMETRY_SERVER_IP__, 20 );
-        }
-    }
-    fclose( fp );
-    
-    fp = fopen( "/qspi/telemetry_port.txt", "r");
-    if( fp == NULL ) {
-        if( debug_sip ) debug_msg("Failed to open /qspi/telemetry_port.txt" );
-        telemetry_port = __TELEMETRY_SERVER_PORT__;
-    } else {
-        if( fread( (void *)buff_port, 1, 32, fp ) > 0 ) {
-            telemetry_port = atoi( buff_port );
-            if( debug_sip ) debug_msg("Telemetry server port %d", buff_port );
-        } else {
-            if( debug_sip ) debug_msg("Failed to read /qspi/telemetry_port.txt" );
-            telemetry_port = __TELEMETRY_SERVER_PORT__;
-        }
-    }
-    fclose( fp );    
-    
-    //int addr = t_server.set_address( __TELEMETRY_SERVER_IP__ , __TELEMETRY_SERVER_PORT__ );
-    int addr = t_server.set_address( buff_ip , telemetry_port );
-    if( debug_telemetry ) send_msg(" Valor de retorno set_address -- %d ", addr );
-    t_sock.set_blocking( false, 1 );
-    
-    int bind = t_sock.bind( __TELEMETRY_HEADER_PORT__ );
-    if( debug_telemetry ) send_msg(" Valor de retorno bind -- %d ", bind );
-}
-
-void re_start_telemetry( void ){
-    int close = t_sock.close();
-    if( debug_telemetry ) send_msg(" Valor de retorno close-- %d ", close );
-    
-    init_telemetry_handler();
-}
-
-int ls_comp( const void * a, const void * b ){ return( *( int * )a - *( int * )b ); }
\ No newline at end of file
+void xmemcpy32(uint32_t * dest, uint32_t * src, uint16_t size){
+  size >>= 2;
+  while (size--) *dest++ = *src++;
+}
\ No newline at end of file