Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
132:05cd37f7e007
Child:
135:2f4290590e51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vz_stdio.cpp	Tue Sep 01 17:21:11 2015 +0000
@@ -0,0 +1,106 @@
+%: include "vz_stdio.h"
+
+Serial serial_pc ( USBTX, USBRX );
+
+UDPSocket udp_client;
+
+Endpoint udp_server;
+
+TCPSocketServer tcp_server;
+
+TCPSocketConnection tcp_client;
+
+bool debug_io_eth = false;
+
+bool udp_request = false;
+
+bool udp_query = false;
+
+bool tcp_session = false;
+
+bool from_eth = false;
+
+char io_msg1 [ IO_MSG_SIZE + IO_AUX_MSG_SIZE ];
+
+char io_msg2 [ IO_MSG_SIZE ];
+
+char io_debug_msg1 [ IO_MSG_SIZE + IO_AUX_MSG_SIZE ];
+
+char io_debug_msg2 [ IO_MSG_SIZE ];
+
+char io_msg_ [ IO_MSG_SIZE ];
+
+int 
+vz_io_eth_init ( void )
+{
+    int return_value = 0;
+
+    int udp_bind = udp_client.bind ( u16_UDP_PORT_LISTENER );
+
+    udp_client.set_blocking ( false, 0 );
+
+    if ( debug_io_eth ) serial_pc.printf ( "udp_client.bind :: %d", udp_bind );
+
+    if ( udp_bind == 0 ) return_value |= BIT0;
+
+    int tcp_bind = tcp_server.bind ( u16_TCP_PORT_LISTENER );
+
+    tcp_server.set_blocking ( false, 0 );
+
+    int tcp_listen = tcp_server.listen ();  
+
+    if ( debug_io_eth ) serial_pc.printf ( "tcp_server.bind :: %d", tcp_bind );
+
+    if ( tcp_bind == 0 ) return_value |= BIT1;
+
+    return ( return_value );
+}
+
+int
+vz_printf ( const char * format, ... )
+{
+        va_list arg;
+
+        va_start ( arg, format );
+
+        int done = vsnprintf ( io_msg_, IO_MSG_SIZE -1, format, arg );
+        
+        snprintf ( io_msg1, sizeof ( io_msg1 ) - 1, "%s\r\n> ", io_msg_ );
+        
+        if ( debug_uart3 && !udp_query && !from_eth ) serial_pc.printf ( "%s",io_msg1 );
+        
+        if ( tcp_session && !udp_query )
+        {
+            while ( !( tcp_client.send_all ( io_msg1, strlen ( io_msg1 ) ) ) );
+        }
+        
+        if ( udp_query )
+        {
+            int send = udp_client.sendTo ( udp_server,io_msg_, strlen ( io_msg_ ) );
+            if ( send not_eq strlen ( io_msg_ ) )
+            {
+                if ( debug_reconnect && debug_uart3 ) serial_pc.printf ("\n\rReconnect udp_query client\n\r");
+                reconnect_prompt_udp_socket ();
+                miss_prompt_udp_send_pkg ++;
+            }
+        }
+        
+        va_end ( arg );
+        
+        return done;
+}
+
+void 
+udp_query_send_msg ( char * msg )
+{
+    if ( ( msg != NULL ) && ( strlen ( msg ) > 0 ) )
+    {   
+        int send = udp_client.sendTo ( udp_server, msg, strlen ( msg ) );
+        
+        if( send not_eq strlen ( msg ) )
+        {
+            reconnect_prompt_udp_socket ();
+            miss_prompt_udp_send_pkg ++;
+        }
+    }
+}
\ No newline at end of file