Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
file_system_manager.cpp
- Committer:
- klauss
- Date:
- 2015-11-24
- Revision:
- 137:32dd35a6dbc9
- Parent:
- 135:2f4290590e51
File content as of revision 137:32dd35a6dbc9:
#include "file_system_manager.h"
QSPIFileSystem qspifs("qspi");
extern Serial pc;
char file_buffer [ FILE_BUFFER_SIZE ];
int fset_header_ip ( const char * new_header_ip )
{
FILE * fip = fopen("/qspi/myip.txt", "w");
if ( fip )
{
fprintf( fip, "%s\n\r", new_header_ip );
fclose( fip );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_ip ( char * header_ip, const size_t length )
{
FILE * fip = fopen ("/qspi/myip.txt", "r" );
if ( fip != NULL )
{
int read = fread ( header_ip, 1, length, fip );
if( read > 0 )
{
for ( register int i = 0; i < read; i++ )
{
if( header_ip [ i ] == '\n' || header_ip [ i ] == '\r' )
{
header_ip [ i ] = '\0';
break;
}
}
} else {
if ( fip ) fclose ( fip );
return ( -3 );
}
header_ip [ length ] = 0;
if ( fip ) fclose ( fip );
return ( read );
}
return ( -1 );
}
int fget_fw_ip ( char * fw_ip, const size_t length )
{
FILE *ffw_ip = fopen( "/qspi/fw_ip.txt", "r");
if( ffw_ip == NULL ){
return ( -1 );
}else{
int read = fread( fw_ip, 1, 512, ffw_ip );
if( read > 0 ){
for( int i = 0; i < read; i++ )
if( fw_ip[ i ] == '\n' || fw_ip[ i ] == '\r' ){
fw_ip[ i ] = '\0';
break;
}
}else{
if ( ffw_ip ) fclose ( ffw_ip );
return ( -3 );
}
if ( ffw_ip ) fclose ( ffw_ip );
fw_ip [ length ] = 0;
return ( read );
}
}
int fget_server_ip ( char * server_ip, const size_t length )
{
FILE * fsip = fopen ("/qspi/serverip.txt", "r" );
if ( fsip != NULL )
{
int read = fread ( server_ip, 1, length, fsip );
if( read > 0 )
{
for ( register int i = 0; i < read; i++ )
{
if( server_ip [ i ] == '\n' || server_ip [ i ] == '\r' )
{
server_ip [ i ] = '\0';
break;
}
}
} else {
if ( fsip ) fclose ( fsip );
return ( -3 );
}
server_ip [ length ] = 0;
fclose ( fsip );
return ( read );
}
return ( -1 );
}
int fget_mask ( char * eth_mask, const size_t length )
{
FILE * fmsk = fopen("/qspi/mymask.txt", "r");
if ( fmsk != NULL )
{
int read = fread ( eth_mask, 1, length, fmsk );
if( read > 0 )
{
for ( register int i = 0; i < read; i++ )
{
if( eth_mask [ i ] == '\n' || eth_mask [ i ] == '\r' )
{
eth_mask [ i ] = '\0';
break;
}
}
} else {
if ( fmsk ) fclose ( fmsk );
return ( -3 );
}
eth_mask [ length ] = 0;
if ( fmsk ) fclose ( fmsk );
return ( read );
}
return ( -1 );
}
int fget_gateway ( char * eth_gw, const size_t length )
{
FILE * fgw = fopen("/qspi/mygateway.txt", "r");
if ( fgw != NULL )
{
int read = fread ( eth_gw, 1, length, fgw );
if( read > 0 )
{
for ( register int i = 0; i < read; i++ )
{
if( eth_gw [ i ] == '\n' || eth_gw [ i ] == '\r' )
{
eth_gw [ i ] = '\0';
break;
}
}
} else {
if ( fgw ) fclose ( fgw );
return ( -3 );
}
eth_gw [ length ] = 0;
if ( fgw ) fclose ( fgw );
return ( read );
}
return ( -1 );
}
int fset_header_ext ( const int new_header_ext )
{
FILE * fext = fopen( "/qspi/myext.txt", "w" );
if ( fext )
{
fprintf( fext, "%i\n\r", new_header_ext );
fclose( fext );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fset_acceptable_delay ( const int new_acceptable_delay )
{
FILE * fad = fopen( "/qspi/acceptable_delay.txt", "w" );
if ( fad )
{
fprintf ( fad, "%i\n\r", new_acceptable_delay );
fclose ( fad );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_acceptable_delay ( void )
{
char get_acceptable_delay_buffer [ 32 ] = "";
FILE * fad = fopen ( "/qspi/acceptable_delay.txt", "r" );
if ( fad == NULL )
{
return ( -3 );
} else {
if( fread ( ( void * ) get_acceptable_delay_buffer, 1, sizeof ( get_acceptable_delay_buffer ) - 1, fad ) > 0 )
{
if ( fad ) fclose ( fad );
return ( atoi ( get_acceptable_delay_buffer ) );
} else {
if ( fad ) fclose ( fad );
return ( -5 );
}
}
}
int fget_header_ext ( void )
{
char get_header_ext_buffer [ 32 ] = "";
FILE * fext = fopen ( "/qspi/myext.txt", "r" );
if ( fext == NULL )
{
return ( -3 );
} else {
if( fread ( ( void * ) get_header_ext_buffer, 1, sizeof ( get_header_ext_buffer ) - 1, fext ) > 0 )
{
if ( fext ) fclose ( fext );
return ( atoi ( get_header_ext_buffer ) );
} else {
if ( fext ) fclose ( fext );
return ( -5 );
}
}
}
int fset_header_sip_port ( const int new_header_sip_port )
{
FILE * fport = fopen("/qspi/mysipport.txt", "w");
if ( fport )
{
fprintf( fport,"%i\n\r", new_header_sip_port );
fclose( fport );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_header_sip_port ( void )
{
char get_header_sip_port_buffer [ 32 ] = "";
FILE * fport = fopen ( "/qspi/mysipport.txt", "r" );
if ( fport == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_header_sip_port_buffer, 1, sizeof ( get_header_sip_port_buffer ) - 1, fport ) > 0 )
{
if ( fport ) fclose ( fport );
return ( atoi ( get_header_sip_port_buffer ) );
} else {
if ( fport ) fclose ( fport );
return ( -3 );
}
}
}
int fset_server_ip ( const char * new_server_ip )
{
FILE * fsip = fopen("/qspi/serverip.txt", "w");
if ( fsip )
{
fprintf( fsip,"%s\n\r", new_server_ip );
fclose( fsip );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fset_server_ext ( const int new_server_ext )
{
FILE * fserext = fopen("/qspi/peerext.txt", "w");
if ( fserext )
{
fprintf( fserext , "%i\n\r", new_server_ext );
fclose( fserext );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_server_ext ( void )
{
char get_server_ext_buffer [ 32 ] = "";
FILE * fserver_ext = fopen ( "/qspi/peerext.txt", "r" );
if ( fserver_ext == NULL )
{
return ( -3 );
} else {
if( fread ( ( void * ) get_server_ext_buffer, 1, sizeof ( get_server_ext_buffer ) - 1, fserver_ext ) > 0 )
{
if ( fserver_ext ) fclose ( fserver_ext );
return ( atoi ( get_server_ext_buffer ) );
} else {
if ( fserver_ext ) fclose ( fserver_ext );
return ( -5 );
}
}
}
int fset_server_port ( const int new_server_port )
{
FILE * fsport = fopen("/qspi/serverport.txt", "w");
if ( fsport )
{
fprintf(fsport,"%i\n\r", new_server_port );
fclose( fsport );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_server_port ( void )
{
char get_server_sip_port_buffer [ 32 ] = "";
FILE * fserver_port = fopen ( "/qspi/serverport.txt", "r" );
if ( fserver_port == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_server_sip_port_buffer, 1, sizeof ( get_server_sip_port_buffer ) - 1, fserver_port ) > 0 )
{
if ( fserver_port ) fclose ( fserver_port );
return ( atoi ( get_server_sip_port_buffer ) );
} else {
if ( fserver_port ) fclose ( fserver_port );
return ( -3 );
}
}
}
int fset_mask ( const char * new_mask )
{
FILE * fmask = fopen("/qspi/mymask.txt", "w");
if ( fmask )
{
fprintf(fmask,"%s\n\r",new_mask );
fclose( fmask );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fset_gateway ( const char * new_gateway )
{
FILE * fgate = fopen("/qspi/mygateway.txt", "w");
if ( fgate )
{
fprintf(fgate,"%s\n\r", new_gateway );
fclose( fgate );
return ( 0 );
}
else
{
return ( -1 );
}
}
int set_udp_port_listener ( const int new_udp_port_listener )
{
FILE * fudpport = fopen( "/qspi/udpport.txt", "w" );
if ( fudpport )
{
fprintf( fudpport, "%i\n\r",new_udp_port_listener );
fclose( fudpport );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_udp_port_listener ( void )
{
char get_udp_port_listener_buffer [ 32 ] = "";
FILE * fudp_port_listener = fopen ( "/qspi/udpport.txt", "r" );
if ( fudp_port_listener == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_udp_port_listener_buffer, 1, sizeof ( get_udp_port_listener_buffer ) - 1, fudp_port_listener ) > 0 )
{
if ( fudp_port_listener ) fclose ( fudp_port_listener );
return ( atoi ( get_udp_port_listener_buffer ) );
} else {
if ( fudp_port_listener ) fclose ( fudp_port_listener );
return ( -3 );
}
}
}
int set_tcp_port_listener ( const int new_tcp_port_listener )
{
FILE * ftcpport = fopen( "/qspi/tcpport.txt", "w" );
if ( ftcpport )
{
fprintf( ftcpport, "%i\n\r",new_tcp_port_listener );
fclose( ftcpport );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_tcp_port_listener ( void )
{
char get_tcp_port_listener_buffer [ 32 ] = "";
FILE * ftcp_port_listener = fopen ( "/qspi/tcpport.txt", "r" );
if ( ftcp_port_listener == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_tcp_port_listener_buffer, 1, sizeof ( get_tcp_port_listener_buffer ) - 1, ftcp_port_listener ) > 0 )
{
if ( ftcp_port_listener ) fclose ( ftcp_port_listener );
return ( atoi ( get_tcp_port_listener_buffer ) );
} else {
if ( ftcp_port_listener ) fclose ( ftcp_port_listener );
return ( -3 );
}
}
}
int fset_fw_ip ( const char * new_fw_ip )
{
FILE * ffwip = fopen("/qspi/fw_ip.txt", "w" );
if ( ffwip )
{
fprintf(ffwip,"%s\n\r", new_fw_ip );
fclose( ffwip );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fset_fw_port ( const int new_fw_port )
{
FILE * ffwport = fopen("/qspi/fw_port.txt", "w" );
if ( ffwport )
{
fprintf(ffwport,"%i\n\r", new_fw_port );
fclose( ffwport );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_fw_port ( void )
{
char get_fw_server_port_buffer [ 32 ] = "";
FILE * ffw_server_port = fopen ( "/qspi/fw_port.txt", "r" );
if ( ffw_server_port == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_fw_server_port_buffer, 1, sizeof ( get_fw_server_port_buffer ) - 1, ffw_server_port ) > 0 )
{
if ( ffw_server_port ) fclose ( ffw_server_port );
return ( atoi ( get_fw_server_port_buffer ) );
} else {
if ( ffw_server_port ) fclose ( ffw_server_port );
return ( -3 );
}
}
}
int fset_max_ext ( const int new_max_ext )
{
FILE * fmex = fopen( "/qspi/maxext.txt", "w" );
if ( fmex ){
fprintf( fmex, "%i\n\r", new_max_ext );
fclose( fmex );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_max_ext ( void )
{
char get_max_ext_buffer [ 32 ] = "";
FILE * fmax_ext = fopen ( "/qspi/maxext.txt", "r" );
if ( fmax_ext == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_max_ext_buffer, 1, sizeof ( get_max_ext_buffer ) - 1, fmax_ext ) > 0 )
{
if ( fmax_ext ) fclose ( fmax_ext );
return ( atoi ( get_max_ext_buffer ) );
} else {
if ( fmax_ext ) fclose ( fmax_ext );
return ( -3 );
}
}
}
int fset_min_ext ( const int new_min_ext )
{
FILE * fmin = fopen( "/qspi/minext.txt", "w" );
if ( fmin ){
fprintf( fmin, "%i\n\r", new_min_ext );
fclose( fmin );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_min_ext ( void )
{
char get_min_ext_buffer [ 32 ] = "";
FILE * fmin_ext = fopen ( "/qspi/minext.txt", "r" );
if ( fmin_ext == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_min_ext_buffer, 1, sizeof ( get_min_ext_buffer ) - 1, fmin_ext ) > 0 )
{
if ( fmin_ext ) fclose ( fmin_ext );
return ( atoi ( get_min_ext_buffer ) );
} else {
if ( fmin_ext ) fclose ( fmin_ext );
return ( -3 );
}
}
}
// Print the content of a given file
int cat ( const char * fname )
{
char buff[513];
int num;
FILE * fp = fopen( fname, "r" );
if ( fp == NULL )
{
pc.printf( "Failed to open %s", fname);
return ( -3 );
}
while( ( num = fread( buff, 1, 512, fp ) ) > 0 )
{
buff[ num ] = '\0';
pc.printf( "%s", buff );
}
if ( fp ) fclose ( fp );
return ( 0 );
}
int fset_shift_port ( const int new_shift_port )
{
FILE * shift_port = fopen("/qspi/shift_port.txt", "w" );
if( shift_port )
{
fprintf( shift_port,"%i\n\r", new_shift_port );
fclose( shift_port );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_shift_port ( void )
{
char get_shift_port_buffer [ 32 ] = "";
FILE * fshift_port = fopen ( "/qspi/shift_port.txt", "r" );
if ( fshift_port == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_shift_port_buffer, 1, sizeof ( get_shift_port_buffer ) - 1, fshift_port ) > 0 )
{
if ( fshift_port ) fclose ( fshift_port );
return ( atoi ( get_shift_port_buffer ) );
} else {
if ( fshift_port ) fclose ( fshift_port );
return ( -3 );
}
}
}
int files ( const char type )
{
if ( type == 's' ) {
pc.printf("Header IP " );
cat ("/qspi/myip.txt");
pc.printf("Header ext ");
cat("/qspi/myext.txt");
pc.printf("Header port ");
cat("/qspi/mysipport.txt");
pc.printf("Server IP ");
cat("/qspi/serverip.txt");
pc.printf("Server ext ");
cat("/qspi/peerext.txt");
pc.printf("Server port ");
cat("/qspi/serverport.txt");
pc.printf("Mascara de rede ");
cat("/qspi/mymask.txt");
pc.printf("Gateway IP ");
cat("/qspi/mygateway.txt");
pc.printf("UDP Port ");
cat("/qspi/udpport.txt");
pc.printf("TCP Port ");
cat("/qspi/tcpport.txt");
pc.printf("FW Server IP ");
cat("/qspi/fw_ip.txt");
pc.printf("FW Server Port ");
cat("/qspi/fw_port.txt");
pc.printf("Max Ext ");
cat("/qspi/maxext.txt");
pc.printf("Min Ext ");
cat("/qspi/minext.txt");
pc.printf("Shift Port ");
cat("/qspi/shift_port.txt");
pc.printf("Clock Server IP ");
cat("/qspi/serverip.txt");
return ( 0 );
}
return ( -1 );
}
int init_fsystem ( void )
{
// init file system and check if files exist
int return_value = 0;
if (!qspifs.isformatted()) {
qspifs.format();
return_value |= BIT0;
}
return ( return_value |= BIT1 );
}
int fset_cbx_detach_mode ( const bool new_cbx_detach_mode )
{
FILE * file_cbx_detach_mode = fopen ("/qspi/cbx_detach_mode.txt", "w" );
if ( file_cbx_detach_mode )
{
fprintf ( file_cbx_detach_mode,"%i\n\r", ( new_cbx_detach_mode ) ? 1 : 0 );
fclose ( file_cbx_detach_mode );
return ( 0 );
}
else
{
return ( -1 );
}
}
bool fget_cbx_detach_mode ( int * err )
{
char get_cbx_detach_mode_buffer [ 32 ] = "";
FILE * file_cbx_detach_mode = fopen ( "/qspi/cbx_detach_mode.txt", "r" );
if ( file_cbx_detach_mode == NULL )
{
*err = -1;
} else {
if( fread ( ( void * ) get_cbx_detach_mode_buffer, 1, sizeof ( get_cbx_detach_mode_buffer ) - 1, file_cbx_detach_mode ) > 0 )
{
if ( file_cbx_detach_mode ) fclose ( file_cbx_detach_mode );
int tmp = atoi ( get_cbx_detach_mode_buffer );
return ( ( tmp == 1 ) ? true : false );
} else {
if ( file_cbx_detach_mode ) fclose ( file_cbx_detach_mode );
*err = -3;
}
}
return false;
}
int fset_cbx_wake_mode ( const bool new_cbx_wake_mode )
{
FILE * file_cbx_wake_mode = fopen ("/qspi/cbx_wake_mode.txt", "w" );
if ( file_cbx_wake_mode )
{
fprintf ( file_cbx_wake_mode,"%i\n\r", ( new_cbx_wake_mode ) ? 1 : 0 );
fclose ( file_cbx_wake_mode );
return ( 0 );
}
else
{
return ( -1 );
}
}
bool fget_cbx_wake_mode ( int * err )
{
char get_cbx_wake_mode_buffer [ 32 ] = "";
FILE * file_cbx_wake_mode = fopen ( "/qspi/cbx_wake_mode.txt", "r" );
if ( file_cbx_wake_mode == NULL )
{
*err = -1;
} else {
if( fread ( ( void * ) get_cbx_wake_mode_buffer, 1, sizeof ( get_cbx_wake_mode_buffer ) - 1, file_cbx_wake_mode ) > 0 )
{
if ( file_cbx_wake_mode ) fclose ( file_cbx_wake_mode );
int tmp = atoi ( get_cbx_wake_mode_buffer );
return ( ( tmp == 1 ) ? true : false );
} else {
if ( file_cbx_wake_mode ) fclose ( file_cbx_wake_mode );
*err = -3;
}
}
return false;
}
int fset_cbx_mode ( const uint8_t new_cbx_mode )
{
FILE * file_cbx_mode = fopen ("/qspi/cbx_mode.txt", "w" );
if ( file_cbx_mode )
{
fprintf ( file_cbx_mode,"%i\n\r", new_cbx_mode );
fclose ( file_cbx_mode );
return ( 0 );
}
else
{
return ( -1 );
}
}
int fget_cbx_mode ( void )
{
char get_cbx_mode_buffer [ 32 ] = "";
FILE * file_cbx_mode = fopen ( "/qspi/cbx_mode.txt", "r" );
if ( file_cbx_mode == NULL )
{
return ( -1 );
} else {
if( fread ( ( void * ) get_cbx_mode_buffer, 1, sizeof ( get_cbx_mode_buffer ) - 1, file_cbx_mode ) > 0 )
{
if ( file_cbx_mode ) fclose ( file_cbx_mode );
return ( atoi ( get_cbx_mode_buffer ) );
} else {
if ( file_cbx_mode ) fclose ( file_cbx_mode );
return ( -3 );
}
}
}
