Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

config_manager.cpp

Committer:
klauss
Date:
2015-11-24
Revision:
137:32dd35a6dbc9
Parent:
135:2f4290590e51

File content as of revision 137:32dd35a6dbc9:

%: include "config_manager.h"

extern Serial pc;

ConfigManager::ConfigManager ( void )
{   
    int siRet = fget_ip ( chHeader_ip, sizeof ( chHeader_ip ) );
    
    if ( siRet < 0 ) 
    {
        strncpy ( chHeader_ip, MY_IP, sizeof ( chHeader_ip ) - 1  );
        set_header_ip ( MY_IP );
    }
    
    siRet = fget_server_ip ( chServer_ip, sizeof ( chServer_ip ) );
    
    if ( siRet < 0 ) 
    {
        strncpy ( chServer_ip, SERVER_IP, sizeof ( chServer_ip ) - 1  );   
        set_server_ip ( SERVER_IP );
    }
    
    siRet = fget_mask ( chNet_mask, sizeof ( chNet_mask ) );
    
    if ( siRet < 0 ) 
    {
        strncpy ( chNet_mask, MY_MSK, sizeof ( chNet_mask ) - 1  );
        set_net_mask ( MY_MSK );
    }
    
    siRet = fget_gateway ( chGateway, sizeof ( chGateway ) );
    
    if ( siRet < 0 ) 
    {
        strncpy ( chGateway, MY_GTW, sizeof ( chGateway ) - 1  );
        set_gateway ( MY_GTW );
    }
    
    siRet = fget_fw_ip ( chFw_server_ip, sizeof ( chFw_server_ip ) );
    
    if ( siRet < 0 ) 
    {
        strncpy ( chFw_server_ip, FW_SERVER_IP, sizeof ( chFw_server_ip ) - 1  );
        set_fw_server_ip ( FW_SERVER_IP );
    }
    
    siRet = fget_header_ext ();
    
    if ( siRet < 0 ) 
    { 
        u16Ext = u16_MY_EXT; 
        set_header_ext ( u16_MY_EXT );
    } 
        else 
    {
        u16Ext = ( uint16_t ) siRet; 
    }
    
    siRet = fget_header_sip_port ();
    
    if ( siRet < 0 ) 
    {
        u16Port = u16_MY_PORT; 
        set_header_sip_port ( u16_MY_PORT );
    } 
        else 
    {
        u16Port = ( uint16_t ) siRet; 
    }
    
    siRet = fget_server_ext ();
    
    if ( siRet < 0 ) 
    { 
        u16Server_ext = u16_PEER_EXT; 
        set_server_ext ( u16_PEER_EXT );
    } 
        else 
    { 
        u16Server_ext = ( uint16_t ) siRet; 
    }
    
    siRet = fget_server_port ();
    
    if ( siRet < 0 ) 
    { 
        u16Server_port = u16_SERVER_PORT; 
        set_server_port ( u16_SERVER_PORT );
    } 
        else 
    { 
        u16Server_port = ( uint16_t ) siRet; 
    }
    
    siRet = fget_fw_port ();
    
    if ( siRet < 0 ) 
    { 
        u16Fw_server_port = u16_FW_SERVER_PORT;
        set_fw_server_port ( u16_FW_SERVER_PORT );
    } 
        else 
    { 
        u16Fw_server_port = ( uint16_t ) siRet; 
    }
    
    siRet = fget_max_ext ();
    
    if ( siRet < 0 ) 
    { 
        u16Max_ext = u16_MAX_EXT; 
        set_max_ext ( u16_MAX_EXT );
    } 
        else 
    { 
        u16Max_ext = ( uint16_t ) siRet; 
    }
    
    siRet = fget_min_ext ();
    
    if ( siRet < 0 ) 
    { 
        u16Min_ext = u16_MIN_EXT; 
        set_min_ext ( u16_MIN_EXT );
    } 
        else 
    { 
        u16Min_ext = ( uint16_t ) siRet; 
    }
    
    siRet = fget_shift_port ();
    
    if ( siRet < 0 ) 
    { 
        u16Shift_port = u16_SHIFT_PORT;
        set_shift_port ( u16_SHIFT_PORT );
    } 
        else 
    { 
        u16Shift_port = ( uint16_t ) siRet; 
    }
    
    siRet = fget_acceptable_delay ();
    
    if ( siRet < 0 ) 
    { 
        u8Acceptable_delay = u8_ACCEPTABLE_DELAY;
        fset_acceptable_delay ( u8_ACCEPTABLE_DELAY );
    } 
        else 
    { 
        u8Acceptable_delay = ( uint8_t ) siRet; 
    }
    
    
    siRet = fget_tcp_port_listener ();
    
    if ( siRet < 0 ) 
    { 
        u16Tcp_port_listener = u16_TCP_PORT_LISTENER; 
        set_tcp_port_listener ( u16_TCP_PORT_LISTENER );
    } 
        else 
    { 
        u16Tcp_port_listener = ( uint16_t ) siRet; 
    }
    
    siRet = fget_udp_port_listener ();
    
    if ( siRet < 0 ) 
    { 
        u16Udp_port_listener = u16_UDP_PORT_LISTENER;
        set_udp_port_listener ( u16_UDP_PORT_LISTENER );
    }
        else 
    { 
        u16Udp_port_listener = ( uint16_t ) siRet;
    }
    
    strcpy ( this -> chClock_erver_ip, this -> chServer_ip );
    
    boolCallBoxDetachMode = fget_cbx_detach_mode ( &siRet );
    
    if ( siRet < 0 ) 
    { 
        boolCallBoxDetachMode = false;
        set_cbx_detach_mode ( false );
    }
    
    boolCallBoxWakeMode = fget_cbx_wake_mode ( &siRet );
    
    if ( siRet < 0 ) 
    { 
        boolCallBoxWakeMode = true;
        set_cbx_wake_mode ( true );
    }
    
    siRet = fget_cbx_mode ();
    
    if ( siRet < 0 ) 
    { 
        u8CallBoxMode = u8_CUSTOM_MODE;
        fset_cbx_mode ( u8_CUSTOM_MODE );
    } 
        else 
    { 
        u8CallBoxMode = ( uint8_t ) siRet;
        
        if ( u8CallBoxMode == u8_FIBRA_MODE )
        {
            boolCallBoxWakeMode = true;
            boolCallBoxDetachMode = false;
        }
        else if ( u8CallBoxMode == u8_RADIO_MODE )
        {
            boolCallBoxWakeMode = false;
            boolCallBoxDetachMode = true;
        }
    }
    
    set_modified_false ();
}

ConfigManager::~ConfigManager ( void ) {}

void ConfigManager::restore_defaults_settings ( void )
{
    set_fw_server_ip ( FW_SERVER_IP );
    set_fw_server_port ( u16_FW_SERVER_PORT );
    set_gateway ( MY_GTW );
    set_header_ext ( u16_MY_EXT );
    set_header_ip ( MY_IP );
    set_header_sip_port ( u16_MY_PORT );
    set_max_ext ( u16_MAX_EXT );
    set_min_ext ( u16_MIN_EXT );
    set_net_mask ( MY_MSK );
    set_server_ext ( u16_PEER_EXT );
    set_server_ip ( SERVER_IP );
    set_server_port ( u16_SERVER_PORT );
    set_shift_port ( u16_SHIFT_PORT );
    set_tcp_port_listener ( u16_TCP_PORT_LISTENER );
    set_udp_port_listener ( u16_UDP_PORT_LISTENER );

    set_modified_true ();
}



char * ConfigManager::get_header_ip ( char * buffer )
{
    strcpy ( buffer, chHeader_ip );
    return ( buffer );
}

char * ConfigManager::get_server_ip ( char * buffer )
{
    strcpy ( buffer, chServer_ip );
    return ( buffer );
}

char * ConfigManager::get_clock_server_ip ( char * buffer )
{
    return ( get_server_ip ( buffer ) );
}

char * ConfigManager::get_net_mask ( char * buffer )
{
    strcpy ( buffer, chNet_mask );
    return ( buffer );
}

char * ConfigManager::get_gateway ( char * buffer )
{
    strcpy ( buffer, chGateway );
    return ( buffer );
}

char * ConfigManager::get_fw_server_ip ( char * buffer )
{
    strcpy ( buffer, chFw_server_ip );
    return ( buffer );
}
uint8_t ConfigManager::get_acceptable_delay ( void ) { return u8Acceptable_delay; }

uint16_t ConfigManager::get_ext ( void ) { return ( u16Ext ); }

uint16_t ConfigManager::get_port ( void ) { return ( u16Port ); }

uint16_t ConfigManager::get_server_ext ( void ) { return ( u16Server_ext ); }

uint16_t ConfigManager::get_server_port ( void ) { return ( u16Server_port ); }

uint16_t ConfigManager::get_fw_server_port ( void ) { return ( u16Fw_server_port ); }

uint16_t ConfigManager::get_max_ext ( void ) { return ( u16Max_ext ); }

uint16_t ConfigManager::get_min_ext ( void ) { return ( u16Min_ext ); }

uint16_t ConfigManager::get_shift_port ( void ) { return ( u16Shift_port ); }

uint16_t ConfigManager::get_udp_port_listener ( void ) { return ( u16Udp_port_listener ); }

uint16_t ConfigManager::get_tcp_port_listener ( void ) { return ( u16Tcp_port_listener ); }

bool ConfigManager::was_modified ( void ) { return boolModified; }

bool ConfigManager::get_cbx_detach_mode ( void ) { return boolCallBoxDetachMode; }

bool ConfigManager::get_cbx_wake_mode ( void ) { return boolCallBoxWakeMode; }

uint8_t ConfigManager::get_cbx_mode ( void ) { return u8CallBoxMode; }

void ConfigManager::set_header_ip ( const char * new_Header_ip ) 
{ 
    fset_header_ip ( new_Header_ip );
    strcpy ( chHeader_ip, new_Header_ip );
    set_modified_true ();
    boolHeader_ip_was_modified = true;
}

void ConfigManager::set_server_ip ( const char * new_Server_ip ) 
{
    fset_server_ip ( new_Server_ip );
    strcpy ( chServer_ip, new_Server_ip ); 
    set_modified_true ();
    boolServer_ip_was_modified = true;
}

void ConfigManager::set_net_mask ( const char * new_Net_mask ) 
{
    fset_mask ( new_Net_mask );
    strcpy ( chNet_mask, new_Net_mask ); 
    set_modified_true ();
    boolNet_mask_was_modified = true;
}

void ConfigManager::set_gateway ( const char * new_Gateway )
{
    fset_gateway ( new_Gateway );
    strcpy ( chGateway, new_Gateway ); 
    set_modified_true ();
    boolGateway_was_modified = true;
}

void ConfigManager::set_fw_server_ip ( const char * new_Fw_server_ip )
{ 
    fset_fw_ip ( new_Fw_server_ip );
    strcpy ( chFw_server_ip, new_Fw_server_ip ); 
    set_modified_true ();
    boolFw_server_ip_was_modified = true;
}

void ConfigManager::set_header_ext ( const uint16_t new_Ext )
{
    fset_header_ext ( new_Ext );
    u16Ext = new_Ext; 
    set_modified_true ();
    boolHeader_ext_was_modified = true;
}

void ConfigManager::set_header_sip_port ( const uint16_t new_Port )
{   
    fset_header_sip_port ( new_Port );
    u16Port = new_Port; 
    set_modified_true ();
    boolHeader_sip_port_was_modified = true;
}

void ConfigManager::set_server_ext ( const uint16_t new_Server_ext )
{ 
    fset_server_ext ( new_Server_ext );
    u16Server_ext = new_Server_ext; 
    set_modified_true ();
    boolServer_ext_was_modified = true;
}

void ConfigManager::set_server_port ( const uint16_t new_Server_port ) 
{ 
    fset_server_port ( new_Server_port );
    u16Server_port = new_Server_port; 
    set_modified_true ();
    boolServer_port_was_modified = true;
}

void ConfigManager::set_fw_server_port ( const uint16_t new_Fw_server_port ) 
{ 
    fset_fw_port ( new_Fw_server_port );
    u16Fw_server_port = new_Fw_server_port; 
    set_modified_true ();
    boolFw_server_port_was_modified = true;
}

void ConfigManager::set_max_ext ( const uint16_t new_Max_ext ) 
{ 
    fset_max_ext ( new_Max_ext );
    u16Max_ext = new_Max_ext; 
    set_modified_true ();
    boolMax_ext_was_modified = true;
}

void ConfigManager::set_min_ext ( const uint16_t new_Min_ext )
{ 
    fset_min_ext ( new_Min_ext );
    u16Min_ext = new_Min_ext; 
    set_modified_true ();
    boolMin_ext_was_modified = true;
}

void ConfigManager::set_shift_port ( const uint16_t new_Shift_port )
{ 
    fset_shift_port ( new_Shift_port );
    u16Shift_port = new_Shift_port; 
    set_modified_true ();
    boolShift_port_was_modified = true;
}

void ConfigManager::set_acceptable_delay ( const uint8_t new_acceptable_delay )
{
    u8Acceptable_delay = new_acceptable_delay;
    fset_acceptable_delay ( new_acceptable_delay );
}


void ConfigManager::set_udp_port_listener ( const uint16_t new_udp_port_listener )
{
    u16Udp_port_listener = new_udp_port_listener;
}

void ConfigManager::set_tcp_port_listener ( const uint16_t new_tcp_port_listener )
{
    u16Tcp_port_listener = new_tcp_port_listener;
}

void ConfigManager::set_cbx_detach_mode ( const bool new_cbx_detach_mode )
{
    boolCallBoxDetachMode = new_cbx_detach_mode;
    fset_cbx_detach_mode ( new_cbx_detach_mode );
    cbx_custom_mode_check ();
}

void ConfigManager::set_cbx_wake_mode ( const bool new_cbx_wake_mode )
{
    boolCallBoxWakeMode = new_cbx_wake_mode;
    fset_cbx_wake_mode ( new_cbx_wake_mode );
    cbx_custom_mode_check ();
}

void ConfigManager::set_cbx_mode ( const uint8_t new_cbx_mode )
{
    u8CallBoxMode = new_cbx_mode;
    fset_cbx_mode ( new_cbx_mode );
            
    if ( u8CallBoxMode == u8_FIBRA_MODE )
    {
        boolCallBoxWakeMode = true;
        boolCallBoxDetachMode = false;
    }
    else if ( u8CallBoxMode == u8_RADIO_MODE )
    {
        boolCallBoxWakeMode = false;
        boolCallBoxDetachMode = true;
    }
}

void ConfigManager::set_modified_true ( void ) { boolModified = true; }

void ConfigManager::set_modified_false ( void )
{
    boolModified = false; 
    boolHeader_ip_was_modified = false;
    boolServer_ip_was_modified = false;
    boolNet_mask_was_modified = false;
    boolGateway_was_modified = false;
    boolFw_server_ip_was_modified = false;
    boolHeader_ext_was_modified = false;
    boolHeader_sip_port_was_modified = false;
    boolServer_ext_was_modified = false;
    boolServer_port_was_modified = false;
    boolFw_server_port_was_modified = false;
    boolMax_ext_was_modified = false;
    boolMin_ext_was_modified = false;
    boolShift_port_was_modified = false;
}

bool ConfigManager::header_ip_was_modified ( void ) { return boolHeader_ip_was_modified; }
bool ConfigManager::server_ip_was_modified ( void ) { return boolServer_ip_was_modified; }
bool ConfigManager::net_mask_was_modified ( void ) { return boolNet_mask_was_modified; }
bool ConfigManager::gateway_was_modified ( void ) { return boolGateway_was_modified; }
bool ConfigManager::fw_server_ip_was_modified ( void ) { return boolFw_server_ip_was_modified; }
bool ConfigManager::header_ext_was_modified ( void ) { return boolHeader_ext_was_modified; }
bool ConfigManager::header_sip_port_was_modified ( void ) { return boolHeader_sip_port_was_modified; }
bool ConfigManager::server_ext_was_modified ( void ) { return boolServer_ext_was_modified; }
bool ConfigManager::server_port_was_modified ( void ) { return boolServer_port_was_modified; }
bool ConfigManager::fw_server_port_was_modified ( void ) { return boolFw_server_port_was_modified; }
bool ConfigManager::max_ext_was_modified ( void ) { return boolMax_ext_was_modified; }
bool ConfigManager::min_ext_was_modified ( void ) { return boolMin_ext_was_modified; }
bool ConfigManager::shift_port_was_modified ( void ) { return boolShift_port_was_modified; }

void ConfigManager::cbx_custom_mode_check ( void )
{
    uint8_t value = 0;
    if ( ( boolCallBoxWakeMode == true ) and ( boolCallBoxDetachMode == false ) ) value = ( u8_FIBRA_MODE );
    
    else if ( ( boolCallBoxWakeMode == false ) and ( boolCallBoxDetachMode == true ) ) value = ( u8_RADIO_MODE );
    
    else { value = u8_CUSTOM_MODE; }
    
    u8CallBoxMode = value;
    fset_cbx_mode ( value );
}