/********************************************/
/*System Menu                               */
/*PIC32MX795F512L-80I/PF                    */
/********************************************/

#include <xc.h>
#include "Screens.h"
#include "HX8357B.h"
#include "Strings.h"
#include "Delay.h"
#include "LED_Port.h"

void Home_Screen(void)
{    
    LED_Port(5);
    //Draw header
    Header();
    HX8357B_Rect(0, 480, 40, 42, 0x0);     
    
    //System
    HX8357B_Rect(35, 230, 60, 105, 0x0);
    HX8357B_Rect(30, 225, 55, 100, 0x2CED);
    back_color = 0x2CED;
    Write_String(85, 65, 0, 78, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    //Oscillator
    HX8357B_Rect(35, 230, 125, 170, 0x0);
    HX8357B_Rect(30, 225, 120, 165, 0x2CED);
    back_color = 0x2CED;
    Write_String(55, 130, 0, 29, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    //Current
    HX8357B_Rect(35, 230, 190, 235, 0x0);
    HX8357B_Rect(30, 225, 185, 230, 0x2CED);
    back_color = 0x2CED;
    Write_String(75, 195, 0, 32, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    //Display
    HX8357B_Rect(35, 230, 255, 300, 0x0);
    HX8357B_Rect(30, 225, 250, 295, 0x2CED);
    back_color = 0x2CED;
    Write_String(75, 260, 0, 41, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    /////////////////////////////////////////////////////////////////////
    
    //Real time
    HX8357B_Rect(260, 450, 60, 105, 0x0);
    HX8357B_Rect(255, 445, 55, 100, 0x2CED);
    back_color = 0x2CED;
    Write_String(285, 65, 0, 42, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    //SRAM
    HX8357B_Rect(260, 450, 125, 170, 0x0);
    HX8357B_Rect(255, 445, 120, 165, 0x2CED);
    back_color = 0x2CED;
    Write_String(315, 130, 0, 33, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    //Flash
    HX8357B_Rect(260, 450, 190, 235, 0x0);
    HX8357B_Rect(255, 445, 185, 230, 0x2CED);
    back_color = 0x2CED;
    Write_String(310, 195, 0, 49, SYSTEM_STRING, SYSTEM_STRING_OFFSET);

    //Serial port
    HX8357B_Rect(260, 450, 255, 300, 0x0);
    HX8357B_Rect(255, 445, 250, 295, 0x2CED);
    back_color = 0x2CED;
    Write_String(270, 260, 0, 44, SYSTEM_STRING, SYSTEM_STRING_OFFSET);
    
    /////////////////////////////////////////////////////////////////////
    
   while(1)
    {
       Delay(50000);
        //System
        if((data_x > 30 ) && (data_x < 225) && (data_y < 100) && (data_y > 55) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            System_Screen();
        }

        //Oscillator
        if((data_x > 30 ) && (data_x < 225) && (data_y < 165) && (data_y > 120) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            Oscillator_Screen();
        }

        //Current
        if((data_x > 30 ) && (data_x < 225) && (data_y < 230) && (data_y > 185) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            Current_Screen();
        }

        //Display
        if((data_x > 30 ) && (data_x < 225) && (data_y < 295) && (data_y > 250) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            Display_Screen();
        }
        ///////////////////////////////////////////////////////////////////////
        //Real Time
        if((data_x > 255 ) && (data_x < 445) && (data_y < 100) && (data_y > 55) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            RTC_Screen();
        }

        //SRAM
        if((data_x > 255 ) && (data_x < 445) && (data_y < 165) && (data_y > 120) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            SRAM_Screen();
        }

        //Flash
        if((data_x > 255 ) && (data_x < 445) && (data_y < 230) && (data_y > 185) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            Flash_Screen();
        }

        //Serial Port
        if((data_x > 255 ) && (data_x < 445) && (data_y < 295) && (data_y > 250) && (scrn_cnt == 1))
        {
            //clear screen
            HX8357B_Rect(0, 479, 0, 319, 0xffff);
            Serial_Screen();
        }

       //screen saver
        if((data_x < 480 ) && (data_y < 320) && (scrn_cnt == 0))
        {
            int i;
            HX8357B_DISPON();
            Backlight_Control(0);
            for(i=0;i<1000;i++)
            {
                Delay(30000);
            }
            scrn_cnt = 1;
        }
       
       
   }
    
    
    return;
}
