Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

fw_handler.cpp

Committer:
klauss
Date:
2015-11-24
Revision:
137:32dd35a6dbc9
Parent:
132:05cd37f7e007

File content as of revision 137:32dd35a6dbc9:

#include "fw.h"

UDPSocket fw_sock;                                                                                                                      
Endpoint fw_server;
uint16_t miss_fw_send_pkg = 0;

int init_fw_handler ( void )
{
    char buffer_fw_server_ip [ 16 ] = "";
    
    cm -> get_fw_server_ip ( buffer_fw_server_ip );
    
    int addr = fw_server.set_address ( buffer_fw_server_ip , ( int ) cm -> get_fw_server_port () );
    
    if ( debug_fw ) vz_printf (" Valor de retorno set_address -- %d ", addr );
    
    int bind = fw_sock.bind ( __FW_HEADER_PORT__ );
    
    fw_sock.set_blocking ( false, 0 );
    
    if( debug_fw ) vz_printf (" Valor de retorno bind -- %d ", bind );
    
    return ( 0 );
}

void re_start_fw ( void )
{
    int close = fw_sock.close ();
    if ( debug_fw || debug_reconnect ) vz_printf (" Valor de retorno close-- %d ", close );
    
    init_fw_handler ();
}

void fw_cbx_pkg ( const int ext, char * data )
{
    if ( data not_eq NULL ) 
    {
        static uint8_t fw_cbx_pkg_id = 0x00;
        
        data [ CB_BUFFER_SIZE - 1 ] = fw_cbx_pkg_id ++;
         
        int send = fw_sock.sendTo ( fw_server, data, CB_BUFFER_SIZE );
        
        if ( send not_eq CB_BUFFER_SIZE )
        {
            if ( debug_reconnect )
            {
                vz_printf ( "[%d] Reconnect FW - %d", ext, send );
            }
            
            miss_fw_send_pkg ++;
            re_start_fw ();
        }
    }
}