Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

file_system_manager.cpp

Committer:
klauss
Date:
2014-12-30
Revision:
81:3656f00ab3db
Parent:
74:81c47fff88a5
Child:
99:e80850c51106

File content as of revision 81:3656f00ab3db:

#include "file_system_manager.h"

QSPIFileSystem qspifs("qspi");

/*
void init_fsystem(){                 
   //  init file system and check if files exist
    if (!qspifs.isformatted()) {
        qspifs.format();
        send_msg("\n\rFile system configured!!\n\r");
    }
    debug_msg("");
    files('i');   // check if the files are created
    debug_msg("");
    //files('c');
    debug_msg("");
    send_msg("\n\r*******File System Ready*******\n\r");
}

*/

void set_ip( char * new_header_ip ){
    FILE * fip = fopen("/qspi/myip.txt", "w");
    fprintf( fip, "%s\n\r", new_header_ip  );
    fclose( fip );
}

void set_header_ext( int new_header_ext ){
    FILE * fext = fopen( "/qspi/myext.txt", "w" );
    fprintf( fext, "%i\n\r", new_header_ext );
    fclose( fext );
}

void set_header_sip_port( int new_header_sip_port ){
    FILE * fport = fopen("/qspi/mysipport.txt", "w");
    fprintf( fport,"%i\n\r", new_header_sip_port );
    fclose( fport );
}

void set_server_ip( char * new_server_ip ){
    FILE * fsip = fopen("/qspi/serverip.txt", "w");
    fprintf( fsip,"%s\n\r", new_server_ip );
    fclose( fsip );
}

void set_server_ext( int new_server_ext ){
    FILE * fserext = fopen("/qspi/peerext.txt", "w");
    fprintf( fserext , "%i\n\r", new_server_ext );
    fclose( fserext );
}

void set_server_port( int new_server_port ){
    FILE * fsport = fopen("/qspi/serverport.txt", "w");   
    fprintf(fsport,"%i\n\r", new_server_port );
    fclose( fsport );
}

void set_mask( char * new_mask ){
    FILE * fmask = fopen("/qspi/mymask.txt", "w");
    fprintf(fmask,"%s\n\r",new_mask );
    fclose( fmask );
}

void set_gateway( char * new_gateway ){
    //fgate = fopen("/qspi/mygateway.txt", "w");
    FILE * fgate = fopen("/qspi/mygateway.txt", "w");
    fprintf(fgate,"%s\n\r", new_gateway );
    fclose( fgate );
}

void set_udp_port_listener( int new_udp_port_listener ){
    FILE * fudpport = fopen( "/qspi/udpport.txt", "w" );
    fprintf( fudpport, "%i\n\r",new_udp_port_listener );
    fclose( fudpport );
}

void set_tcp_port_listener( int new_tcp_port_listener ){
    FILE * ftcpport = fopen( "/qspi/tcpport.txt", "w" );
    fprintf( ftcpport, "%i\n\r",new_tcp_port_listener );
    fclose( ftcpport );
}

void set_telemetry_ip( char * new_telemetry_ip ){
    FILE * ftip = fopen("/qspi/telemetry_ip.txt", "w" );
    fprintf(ftip,"%s\n\r", new_telemetry_ip );
    fclose( ftip );
}

void set_telemetry_port( int new_telemetry_port ){
    FILE * ftport = fopen("/qspi/telemetry_port.txt", "w" );
    fprintf(ftport,"%i\n\r", new_telemetry_port );
    fclose( ftport );
}

void set_max_ext( int new_max_ext ){
    FILE * fmex = fopen( "/qspi/maxext.txt", "w" );
    fprintf( fmex, "%i\n\r", new_max_ext );
    fclose( fmex );
}

void set_min_ext( int new_min_ext ){
    FILE * fmin = fopen( "/qspi/minext.txt", "w" );
    fprintf( fmin, "%i\n\r", new_min_ext );
    fclose( fmin );
}

// Print the content of a given file
void cat(const char * fname){
    char buff[513];
    int num;
    
    FILE *fp = fopen(fname, "r");
    if (fp == NULL) {
        if( debug_file ) pc.printf( "Failed to open %s", fname);
        return;
    }
    
    while( ( num = fread( buff, 1, 512, fp ) ) > 0 ){
        buff[ num ] = '\0';
        pc.printf( buff );
        if( from_eth ){
            if( tcp_session ) while( !( tcp_client.send_all( buff, strlen( buff ) ) ) );
            
            else if( udp_request ){
                udp_server.sendTo( udp_client, buff, strlen( buff ) );
            }
        }
    }
    fclose(fp);
}

/*
//operantion with the system config files
void files( const char type ){
    FILE    *fip = NULL, 
            *fmask = NULL,
            *fgate = NULL,
            *fport = NULL,
            *fsip = NULL,
            *fsport = NULL,
            *fext = NULL,
            *fserext = NULL,
            *fudpport = NULL,
            *ftcpport = NULL,
            *ftip = NULL,
            *ftport = NULL;

    //fixme mudar o nome dessa variable
    
    //#define MIN_EXT 5100
    //#define MAX_EXT 5139
    char string_msg[ 1024 ];
    // show files
    switch( type ){    
        case 's' : {
            pc.printf("Header IP " );
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Header IP " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/myip.txt");
            
            pc.printf("Header ext ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Header ext " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/myext.txt");
            
            pc.printf("Header port ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Header port " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/mysipport.txt");
            
            pc.printf("Server IP ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Server IP " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/serverip.txt");
            
            pc.printf("Server ext ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Server ext " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/peerext.txt");
            
            pc.printf("Server port ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Server port " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            cat("/qspi/serverport.txt");
            
            pc.printf("Mascara de rede ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Mascara de rede " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            cat("/qspi/mymask.txt");
            
            pc.printf("Gateway IP ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Gateway IP " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            cat("/qspi/mygateway.txt");
            
            pc.printf("UDP Port ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "UDP Port " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/udpport.txt");
            
            pc.printf("TCP Port ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "TCP Port " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/tcpport.txt");
            
            pc.printf("Telemetry Server IP ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server IP " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
            
            cat("/qspi/telemetry_ip.txt");
            
            pc.printf("Telemetry Server Port ");
            if( from_eth ){
                snprintf( string_msg, __PROMPT_ETH_BUFFER_SIZE__, "Telemetry Server Port " );
                if( tcp_session ) while( !( tcp_client.send_all( string_msg, strlen( string_msg ) ) ) );
                
                else if( udp_request ){
                    udp_server.sendTo( udp_client, string_msg, strlen( string_msg ) );
                }
            }
        
            cat("/qspi/telemetry_port.txt");
            break;
        }
    
        case 'c' : {                
            // close all files
            debug_msg("");
            if( fip != NULL ) fclose( fip );
            if( fmask != NULL ) fclose( fmask );
            if( fgate != NULL ) fclose( fgate );
            if( fport != NULL ) fclose( fport );
            if( fsip != NULL ) fclose( fsip );
            if( fsport != NULL ) fclose( fsport );
            if( fext != NULL ) fclose( fext );
            if( fserext != NULL ) fclose( fserext );
            if( fudpport != NULL ) fclose( fudpport );
            if( ftcpport != NULL ) fclose( ftcpport );
            debug_msg("");
            break;
        }    
        
        case 'i' : {
            // Check if files exist, if not create the files
            //fixme criar um bool pra cada file
            bool exists = true;
            
            debug_msg("");
            fip = fopen("/qspi/myip.txt", "r");
            if( fip == NULL){
                set_ip( __MY_IP__ );
                exists = false;
            }
            debug_msg("");
            fserext = fopen("/qspi/myext.txt", "r");
            if( fserext == NULL ){
                set_header_ext( __MY_EXT__ );
                exists = false;
            }
            debug_msg("");
            fport = fopen("/qspi/mysipport.txt", "r");
            if (fport == NULL){
                set_header_sip_port( __MY_PORT__ );
                exists = false;
            }
            debug_msg("");
            fsip = fopen("/qspi/serverip.txt", "r");
            if (fsip == NULL){
                 set_server_ip( __SERVER_IP__ );
                 exists = false;
            }
            debug_msg("");
            fext = fopen("/qspi/peerext.txt", "r");
            if ( fext == NULL ){
                 set_server_ext( __PEER_EXT__ );
                 exists = false;
            }
            debug_msg("");
            fsport = fopen("/qspi/serverport.txt", "r");
            if (fsport == NULL){
                set_server_port( __SERVER_PORT__ );
                exists = false;
            }
            debug_msg("");
            fmask = fopen("/qspi/mymask.txt", "r");
            if (fmask == NULL){
                set_mask( __MY_MSK__ );
                exists = false;
            }
            debug_msg("");
            fgate = fopen("/qspi/mygateway.txt", "r");
            if (fgate == NULL){
                set_gateway( __MY_GTW__ );
                exists = false;
            }
            debug_msg("");
            fudpport = fopen("/qspi/udpport.txt", "r" );
            if( fudpport == NULL ){
                set_udp_port_listener( UDP_PORT_LISTENER );
                exists = false;
            }
            debug_msg("");
            ftcpport = fopen("/qspi/tcpport.txt", "r" );
            if( ftcpport == NULL ){
                set_tcp_port_listener( TCP_PORT_LISTENER );
                exists = false;
            }
            debug_msg("");
            ftip = fopen("/qspi/telemetry_ip.txt", "r" );
            if( ftip == NULL ){
                set_telemetry_ip( __TELEMETRY_SERVER_IP__ );
                exists = false;
            }
            debug_msg("");
            ftport = fopen("/qspi/telemetry_port.txt", "r" );
            if( ftport == NULL ){
                set_telemetry_port( __TELEMETRY_SERVER_PORT__ );
                exists = false;
            }
            debug_msg("");
            if( !exists ){ 
                send_msg("\n\rDefault configurations set!\n\r");
            }
            debug_msg("");
            break;
        }
        
        case 'r' : {
            // Just open for read
            fip = fopen("/qspi/myip.txt", "r");
            fmask = fopen("/qspi/mymask.txt", "r");
            fgate = fopen("/qspi/mygateway.txt", "r");
            fport = fopen("/qspi/mysipport.txt", "r");
            fsip = fopen("/qspi/serverip.txt", "r");
            fsport = fopen("/qspi/serverport.txt", "r");
            fext = fopen( "/qspi/myext.txt", "r" );
            fserext = fopen( "/qspi/peerext.txt", "r" );
            fudpport = fopen( "/qspi/udpport.txt", "r" );
            ftcpport = fopen( "/qspi/tcpport.txt", "r" );
            ftip = fopen("/qspi/telemetry_ip.txt", "r" );
            ftport = fopen("/qspi/telemetry_port.txt", "r" );
            break;
        }
            
        case 'w' : {
            // Create and write the default configs
            
            set_ip( __MY_IP__ );
            
            set_header_sip_port( __MY_PORT__ );
            
            set_header_ext( __MY_EXT__ );
            
            set_server_ip( __SERVER_IP__ );
            
            set_server_ext( __PEER_EXT__ );
            
            set_server_port( __SERVER_PORT__ );
        
            set_mask( __MY_MSK__ );
            
            set_gateway( __MY_GTW__ );
            
            set_udp_port_listener( UDP_PORT_LISTENER );
            
            set_tcp_port_listener( TCP_PORT_LISTENER );
            
            set_telemetry_ip( __TELEMETRY_SERVER_IP__ );
                
            set_telemetry_port( __TELEMETRY_SERVER_PORT__ );
            
            send_msg( "Default configurations set!" );
            break;
        }
        
        case 'e' : {
            //Erase configs
            fip = fopen("/qspi/myip.txt", "w");
            fmask = fopen("/qspi/mymask.txt", "w");
            fgate = fopen("/qspi/mygateway.txt", "w");
            fport = fopen("/qspi/mysipport.txt", "w");
            fsip = fopen("/qspi/serverip.txt", "w");
            fsport = fopen("/qspi/serverport.txt", "w");   
            fext = fopen( "/qspi/myext.txt", "w" );
            fserext = fopen( "/qspi/peerext.txt", "w" );
            fudpport = fopen( "/qspi/udpport.txt", "w" );
            ftcpport = fopen( "/qspi/tcpport.txt", "w" );
            ftip = fopen("/qspi/telemetry_ip.txt", "w" );
            ftport = fopen("/qspi/telemetry_port.txt", "w" );
            
            //FIXME verificar se deveria colocar tudo para %s
            fprintf( fip, "%s\n\r", ""  ); 
            fprintf( fport, "%i\n\r", 0 );
            fprintf( fext, "%i\n\r", 0 ); 
            
            fprintf( fsip, "%s\n\r", ""  );
            fprintf( fserext, "%i\n\r", 0 );
            fprintf( fsport, "%i\n\r", 0 ); 
            
            fprintf( fmask, "%s\n\r","" );  
            fprintf( fgate, "%s\n\r", "" );
            
            fprintf( fudpport, "%i\n\r", 0 );
            fprintf( ftcpport, "%i\n\r", 0 );
            
            fprintf( ftip, "%s\n\r","" );
            fprintf( ftport, "%i\n\r",0 );
            
            files('c');
            
            send_msg("\n\rErased configurations set!\n\r");
            break;
        }
    }
}
*/