Project Embedded Systems E-ict Denayer
Dependencies: BSP_DISCO_F746NG F7_Ethernet LCD_DISCO_F746NG TS_DISCO_F746NG mbed-rtos mbed
Diff: main.cpp
- 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; +}