voltando a versao de n aberturas e fechamentos de sockets data 19/09

Dependencies:   EthernetInterface NTPClient mbed-rtos mbed EALib

Fork of header_main_publish by VZTECH

Revision:
7:019b08223b87
Parent:
6:a10de9926fbe
Child:
8:e3bfe62a477e
--- a/utils.cpp	Fri Sep 12 16:46:37 2014 +0000
+++ b/utils.cpp	Sat Sep 13 19:21:48 2014 +0000
@@ -42,7 +42,8 @@
 }
 
 void __init_eth__( EthernetInterface * eth ){
-    eth->init( __MY_IP__, __MY_MK__ , __MY_GT__ );
+    //eth->init( __MY_IP__, "255.255.255.0", "192.168.120.1" );
+    eth->init( __MY_IP__, __MY_MK__, __MY_GW__ );
     eth->connect();
     // pensar em o que acontece e como sinalizar que nao consegui conectar na web
     // aparente so da time out, so que algo vai travar quando eu tentar usar a conexao
@@ -67,6 +68,30 @@
 }
 
 void registry_aging( Vector * v_cb, uint8_t * data, uint8_t * write_buffer ){
+    Call_Box * cb = NULL;
+    volatile int tam = v_cb->size();
+    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 ){
+                    debug_msg("( ext %d removed ?", cb->get_ext() );
+                    //cb->unregistry();
+                    //v_cb->remove_element( i );
+                    delete( cb );
+                    break;
+                }else{
+                    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();
+                }
+            }
+        }
+        if( tam != v_cb->size() ) debug_msg("%d ---> %d", tam, v_cb->size() );
+    }
+    
+    
     /*
     Call_Box * cb = NULL;
     if( v_cb && data && write_buffer ){