Project Embedded Systems E-ict Denayer

Dependencies:   BSP_DISCO_F746NG F7_Ethernet LCD_DISCO_F746NG TS_DISCO_F746NG mbed-rtos mbed

main.cpp

Committer:
Ayrton_L
Date:
2017-01-21
Revision:
0:16bcf70d262e
Child:
1:a2f7adf6db3d

File content as of revision 0:16bcf70d262e:

#include "main.h"

// regel 68: enum schrijven voor IP/netmask... en vergelijken binnen main

uint32_t ul_ResetDisplay( )
{
    display.Clear( LCD_COLOR_WHITE );
    display.SetBackColor( LCD_COLOR_WHITE );
    display.SetTextColor( LCD_COLOR_BLACK );
    return 0;
}

uint32_t ul_CheckDHCP( struct Network x_DynNetwork )                                     //while lus, iedere seconde eens checken of er geen verandering is
{
    if( Eth.init( ) == 0 )
    {
        char c_NewIP[16];
        Eth.connect( );
        strncpy( c_NewIP, Eth.getIPAddress( ), 16 );
        if( strcmp( x_DynNetwork.c_IPAddress, c_NewIP ) == false )
        {
            strncpy( x_DynNetwork.c_IPAddress, c_NewIP, 16 );
            strncpy( x_DynNetwork.c_MACAddress, Eth.getMACAddress( ), 16 );
            strncpy( x_DynNetwork.c_Netmask, Eth.getNetworkMask( ), 16 );
            strncpy( x_DynNetwork.c_Gateway, Eth.getGateway( ), 16 );
        }
        return 0;
    }
    else
    {
        display.DisplayStringAt( 0, 10, ( uint8_t * )"DHCP: FAILED: ", LEFT_MODE ); 
        return 1;
    }
}

uint32_t ul_CheckInternet( )
{
    return 0;   
}

uint32_t ul_CreateMenu( )
{
    //480x272
    display.DrawRect( 0, 0, 125, 68);
    display.DisplayStringAt( 2, 34, ( uint8_t * )"DYNAMIC", LEFT_MODE );
    display.DrawRect( 0, 68, 125, 68);
    display.DisplayStringAt( 2, 102, ( uint8_t * )"STATIC", LEFT_MODE );
    return 0;
}

uint32_t ul_ShowDynamicMenu( struct Network x_DynNetwork )
{
    ul_ResetDisplay( );
    ul_CreateMenu( );
    display.SetFont( &Font16 );
    display.DisplayStringAt( 130, 10, ( uint8_t * )"IP address: ", LEFT_MODE ); 
    display.DisplayStringAt( 270, 10, ( uint8_t * )&x_DynNetwork.c_IPAddress, LEFT_MODE );
    display.DisplayStringAt( 130, 30, ( uint8_t * )"MAC Address: ", LEFT_MODE ); 
    display.DisplayStringAt( 270, 30, ( uint8_t * )&x_DynNetwork.c_MACAddress, LEFT_MODE );  
    display.DisplayStringAt( 130, 50, ( uint8_t * )"Netmask: ", LEFT_MODE ); 
    display.DisplayStringAt( 270, 50, ( uint8_t * )&x_DynNetwork.c_Netmask, LEFT_MODE ); 
    display.DisplayStringAt( 130, 70, ( uint8_t * )"Gateway: ", LEFT_MODE ); 
    display.DisplayStringAt( 270, 70, ( uint8_t * )&x_DynNetwork.c_Gateway, LEFT_MODE );
    return 0;
}

uint32_t ul_ShowStaticMenu( )
{
    ul_ResetDisplay( );
    ul_CreateMenu( );
    display.DrawRect( 125, 0, 125, 68);
    display.DisplayStringAt( 130, 34, ( uint8_t * )"IP", LEFT_MODE );
    display.DrawRect( 125, 68, 125, 68);
    display.DisplayStringAt( 130, 102, ( uint8_t * )"Gateway", LEFT_MODE );
    display.DrawRect( 125, 136, 125, 68);
    display.DisplayStringAt( 130, 170, ( uint8_t * )"Netmask", LEFT_MODE );
    return 0;
}

void v_TouchThread( void const *args )
{
    TS_StateTypeDef Touch_State; 
    
    Touch.Init( 420, 272 ); 
    
    while( 1 ) 
    {
        Touch.GetState( &Touch_State );
        if( ( Touch_State.touchDetected )&& ( Touch_State.touchX[0] < 125 )&& ( Touch_State.touchY[0] < 69 ) ) 
        {
            b_Dynamic = true;
        } 
        else if( ( Touch_State.touchDetected )&& ( Touch_State.touchX[0] < 125 )&& ( Touch_State.touchY[0] > 68 )&& ( Touch_State.touchY[0] < 137 ) ) 
        {
            b_Dynamic = false;
        }
        else if( ( Touch_State.touchDetected )&& ( Touch_State.touchX[0] > 125 )&& ( Touch_State.touchY[0] < 68 )&& ( b_Dynamic == false) )                                         //button for static IP
        {
            
        }
    }
}

int main( )
{   
    struct Network x_DynNetwork;
    
    ul_ResetDisplay( );
    ul_CreateMenu( );
    Thread t_Touch( v_TouchThread );
    t_Touch.set_priority( osPriorityNormal );
    
    if( b_Dynamic == true )
    {
        if( ul_CheckDHCP( x_DynNetwork ) == 0 )
        {
            ul_ShowDynamicMenu( x_DynNetwork );
            ul_CheckInternet( );
        }
    }
    else if( b_Dynamic == false )
    {
        ul_ShowStaticMenu( );
    } 
    return 0;
}