Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
fw_handler.cpp
- Committer:
- klauss
- Date:
- 2015-04-23
- Revision:
- 116:39a41ebb675c
- Parent:
- 114:472502b31a12
- Child:
- 117:e9facba9db27
File content as of revision 116:39a41ebb675c:
#include "fw.h"
UDPSocket fw_sock;
Endpoint fw_server;
uint16_t miss_fw_send_pkg = 0;
void init_fw_handler( void ){
char buff_ip[ 16 ] = "";
char buff_port[ 8 ] = "";
int fw_port = 0;
FILE *fp = fopen( "/qspi/fw_ip.txt", "r");
if( fp == NULL ){
if( debug_file || debug_reconnect ) send_msg ("Failed to open /qspi/fw_ip.txt" );
strncpy( buff_ip, __FW_SERVER_IP__, 20 );
}else{
int read = fread( buff_ip, 1, 512, fp );
if( read > 0 ){
for( int i = 0; i < read; i++ )
if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){
buff_ip[ i ] = '\0';
break;
}
if( debug_file || debug_reconnect ) send_msg ("fw server ip %s", buff_ip );
}else{
if( debug_file || debug_reconnect ) send_msg ("Failed to open /qspi/fw_ip.txt" );
strncpy( buff_ip, __FW_SERVER_IP__, 20 );
}
}
if( fp != NULL ) fclose( fp );
fp = fopen( "/qspi/fw_port.txt", "r");
if( fp == NULL ) {
if( debug_fw || debug_reconnect ) send_msg ("Failed to open /qspi/fw_port.txt" );
fw_port = __FW_SERVER_PORT__;
} else {
if( fread( (void *)buff_port, 1, 32, fp ) > 0 ) {
fw_port = atoi( buff_port );
if( debug_fw || debug_reconnect ) send_msg ( "fw server port %d", fw_port );
} else {
if( debug_fw || debug_reconnect ) send_msg ( "Failed to read /qspi/fw_port.txt" );
fw_port = __FW_SERVER_PORT__;
}
}
if( fp != NULL ) fclose( fp );
int addr = fw_server.set_address( buff_ip , fw_port );
if( debug_fw ) send_msg(" Valor de retorno set_address -- %d ", addr );
fw_sock.set_blocking( false, 0 );
int bind = fw_sock.bind( __FW_HEADER_PORT__ );
if( debug_fw ) send_msg(" Valor de retorno bind -- %d ", bind );
}
void re_start_fw( void ){
int close = fw_sock.close();
if( debug_fw || debug_reconnect ) send_msg (" Valor de retorno close-- %d ", close );
init_fw_handler();
}
void fw_cbx_pkg( int ext, int port, char * data ){
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 != CB_BUFFER_SIZE )
{
if( debug_reconnect )
{
send_msg("Reconnect FW - %d", send );
}
miss_fw_send_pkg++;
re_start_fw();
}
}
