Project Embedded Systems E-ict Denayer

Dependencies:   BSP_DISCO_F746NG F7_Ethernet LCD_DISCO_F746NG TS_DISCO_F746NG mbed-rtos mbed

Revision:
0:16bcf70d262e
Child:
1:a2f7adf6db3d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jan 21 23:05:11 2017 +0000
@@ -0,0 +1,126 @@
+#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;
+}