Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
33:735fd60e96d8
Parent:
32:43041f5e27c4
Child:
34:f19d9735428e
diff -r 43041f5e27c4 -r 735fd60e96d8 main.cpp
--- a/main.cpp	Thu Sep 25 19:46:37 2014 +0000
+++ b/main.cpp	Tue Sep 30 11:37:31 2014 +0000
@@ -4,10 +4,10 @@
 #include "UART3Interrupt.h"
 #include "parallelcpld.h"
 #include "prompt.h"
-
 #include "debug.h"
 #include "utils.h"
 #include "flood.h"
+#include "eth.h"
 
 volatile uint8_t status = 0x00;
 
@@ -25,8 +25,9 @@
     }
     
     Timer t;
-    Timer flood_timer;
     t.start();
+    Timer udp_timer;
+    static bool listen_udp = false;
           
     /* representa ramal do call box */
     int ext = 0;
@@ -84,11 +85,13 @@
     }
     reset_leds();
     init_fsystem();
+    wdt.Configure( 40.0 ); 
     debug_msg( " Ready " );
+    udp_timer.start();
     
     while( true ){
         prompt_process();
-        
+        wdt.kick();
         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); 
@@ -141,9 +144,9 @@
                 for( register uint8_t i = 0; i < v_cb->size(); i++ ){
                     Call_Box * cb = ( Call_Box * )v_cb->get_element( i );
                     if( debug_alive ){ 
-                        debug_msg(" Type ::  %d -- Ext :: %d -- TimeSlice :: %d -- remain_timeslices :: %d :: v_call->size() :: %d :: Status :: %d :: SIP Status %d", type , cb->get_ext(), cb->get_timeslice(), ts->remain_timeslices(), v_call->size(), cb->status, cb->sip->status ); }
+                        debug_msg(" Type ::  %d -- Ext :: %d -- TimeSlice :: %d -- remain_timeslices :: %d :: v_call->size() :: %d :: Status :: %d :: SIP Status %d", type , cb->get_ext(), cb->get_timeslice(), ts->remain_timeslices(), v_call->size(), cb->status, cb->sip->status ); 
                     }
-                
+                }
                 if( debug_alive == 1 ){
                     if( debug_main ) debug_msg("Status - alive ");
                     //uint32_t errper = 100*(pkg_ckserr/(pkg_ckserr + pkg_cksok));
@@ -155,16 +158,21 @@
                 
                 if( debug_cks ) debug_msg("PKG_CSK OK: %d :: PKG_CSK ERR: %d", pkg_cksok, pkg_ckserr );
                 
+                
                 //<><><><><><><><><><> simulando cbx
                 if( count  == 4 ){
                     Call_Box * cb = new Call_Box( 854, 0x1011 );
+                    cb->registry();
                     v_cb->add( cb );
+                    debug_msg("sent");
                 }
                 count++;
                 
                 if( count  == 41 ){
                     Call_Box * cb = new Call_Box( 854, 0x1011 );
+                    cb->registry();
                     v_cb->add( cb );
+                    debug_msg("sent");
                 }
             }
 //----------------------
@@ -392,6 +400,23 @@
         }else {
             if (flag == 1) { flag = 0; }
         }
+        
+        int length;
+        if( udp_timer.read() > 1 && !listen_udp ){
+            data = (uint8_t *)listen_eth_udp( (char *)buffer, &length );
+            if( length ){ 
+                listen_udp = true;
+                debug_msg("");
+            }else udp_timer.reset();
+        }
+        if( listen_udp ){
+            data = (uint8_t *)listen_eth_udp( (char *)buffer, &length );
+            if( udp_timer.read() > 30 ){
+                listen_udp = false;
+                udp_timer.reset();    
+            }
+        }
+        
         type = __DO_NOTHING__;
     }
 }
\ No newline at end of file