Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
Diff: clock.cpp
- Revision:
- 121:ee02790d00b7
- Parent:
- 120:770f00554b1e
- Child:
- 122:480c44b0e205
diff -r 770f00554b1e -r ee02790d00b7 clock.cpp --- a/clock.cpp Mon May 04 17:25:29 2015 +0000 +++ b/clock.cpp Fri May 08 04:15:23 2015 +0000 @@ -1,4 +1,4 @@ -#include "clock.h" +#include "header_app_includes.h" time_t current_time = 0; @@ -8,6 +8,8 @@ Timer server_clock_timer; +extern const char SERVER_IP[]; // definido em vz_protocol.h + int request_clock_to_server ( void ) { char clock_msg[ TIME_MSG_SIZE ]; @@ -16,12 +18,11 @@ clock_msg [ 0 ] = 0x23; - //int send = clock_sock.sendTo( clock_server, clock_msg, strlen( clock_msg ) ); - int send = clock_sock.sendTo( clock_server, clock_msg, sizeof ( clock_msg ) ); + int send = clock_sock.sendTo ( clock_server, clock_msg, sizeof ( clock_msg ) ); if ( debug_clock ) debug_msg("::%d::%s::%s::%d::", send, clock_msg, clock_server.get_address (), clock_server.get_port () ); - if ( send != strlen( clock_msg ) ) + if ( send != sizeof ( clock_msg ) ) { if( debug_reconnect ) debug_msg("Reconnect clock request" ); clock_sock_reconnect (); @@ -53,7 +54,7 @@ Endpoint local_clock_server; - int time_msg_rcv = clock_sock.receiveFrom( local_clock_server, time_msg, sizeof( time_msg ) ); + int time_msg_rcv = clock_sock.receiveFrom ( local_clock_server, time_msg, sizeof( time_msg ) ); if( time_msg_rcv == -1 ) { @@ -94,21 +95,44 @@ if ( debug_clock ) debug_msg("Clock.rcv ( %d ), diff [ %d ] ", local_current_time, diff_time ); - return 0; + return ( local_current_time - current_time ); } int init_clock ( void ) { - const char host[] = "192.168.120.120"; - int port = 123; - - int clock_server_set_address_ret = clock_server.set_address( host , port ); + char server_ip [ 16 ]; + + FILE * fp = fopen ( "/qspi/serverip.txt", "r"); + if ( fp == NULL) + { + if ( debug_sip ) debug_msg("Failed to open /qspi/serverip.txt" ); + strncpy ( server_ip, SERVER_IP, 20 ); + } else { + char tmp [ 16 ] = "\0"; + int read = fread ( tmp, 1, 15, fp ); + if ( read > 0 ){ + for ( int i = 0; i < read; i++ ) + if ( tmp [ i ] == '\n' || tmp[ i ] == '\r' ){ + tmp [ i ] = '\0'; + break; + } + strcpy ( server_ip, tmp ); + if ( debug_sip ) debug_msg ("ip server%s( read %d chars ), valid %d", server_ip, read, strlen( server_ip ) ); + }else{ + if ( debug_sip ) debug_msg ("Failed to read /qspi/serverip.txt" ); + strncpy ( server_ip, SERVER_IP, 20 ); + } + } + fclose ( fp ); + server_ip [ 15 ] = '\0'; + + int clock_server_set_address_ret = clock_server.set_address( server_ip, CLOCK_SERVER_PORT ); if ( debug_clock ) debug_msg("clock_server_set_address_ret :: %d", clock_server_set_address_ret ); clock_sock.set_blocking( false, 0 ); - int clock_sock_bind_ret = clock_sock.bind( 8975 ); + int clock_sock_bind_ret = clock_sock.bind( CLOCK_HEADER_PORT ); if ( debug_clock ) debug_msg("clock_sock_bind_ret ::%d", clock_sock_bind_ret ); @@ -125,7 +149,7 @@ clock_sock.set_blocking ( false, 0 ); - int clock_sock_bind_ret = clock_sock.bind ( 8975 ); + int clock_sock_bind_ret = clock_sock.bind ( CLOCK_HEADER_PORT ); return ( clock_sock_bind_ret ); } @@ -210,5 +234,5 @@ send_msg( "%s", buffer ); - return ( 0 ); + return ( strlen ( buffer ) ); } \ No newline at end of file