예제 #1
0
/*****************************************************************************
 * void DisplayLightingScreen(void)
 *****************************************************************************/
void DisplayLightingScreen(void)
{
    static DWORD prevTick = 0;
    static BYTE blink = 0;

    if((TimerTick_GetTick() - prevTick) > 1000)
    {
	    prevTick = TimerTick_GetTick();
	    blink ^=1;
	    
        if(blink == 1)
	       { SetColor(GREEN);}
	    else
	        SetColor(WHITE);

	    FillCircle(LIGHTING_SCREEN_START + 65, 140, 5);           //Bed 3
	    FillCircle(LIGHTING_SCREEN_START+290, 160, 5);            //Terrace
	    FillCircle(LIGHTING_SCREEN_START+250, GetMaxY() - 80, 5);  //Living
	    FillCircle(LIGHTING_SCREEN_START + 65, GetMaxY() - 200, 5);  //Bed 4
        UpdateDisplayNow();
    }
    
}
예제 #2
0
/************************************************************************
 Function: WORD GOLDrawCallback()

 Overview: This function must be implemented by user. GOLDraw() function 
 		   calls it each time when GOL objects drawing is completed. User 
 		   drawing should be done here. GOL will not change color, line 
 		   type and clipping region settings while  this function 
 		   returns zero.

 Input: none

 Output: If the function returns non-zero the draw control will be passed 
		to GOL. GOLDraw() can proceed and re-draw objects that needs 
		to be redrawn.
************************************************************************/
bool GFX_GOL_DrawCallback(void)
{
    static uint32_t timeClock = 0;
//    GFX_GOL_ANALOGCLOCK     *pAc;

    switch(screenState)
    {

        case CREATE_BACKGROUND:
            screenState = DISPLAY_BACKGROUND;     // switch to next state
            return (1);

        case DISPLAY_BACKGROUND: 
            CreatePreLoadScreen();
            screenState = CREATE_MAIN;
            return(1);

        case CREATE_MAIN:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);

            CreateMainScreen(1);
            screenState = DISPLAY_MAIN;                                 // switch to next state
            timeClock =0;
            return (1);                                                 // draw objects created

        case DISPLAY_MAIN:
            if((TimerTick_GetTick() - timeClock) >= 5000)
            {
                 timeClock = TimerTick_GetTick();
//                 pAc = (GFX_GOL_ANALOGCLOCK *)GFX_GOL_ObjectFind(MAIN_SCREEN_ID_ANALOG_CLOCK);
//                 GFX_GOL_ObjectStateSet(pAc, GFX_GOL_ANALOGCLOCK_TICK);
            }
            return (1);
                        
        case CREATE_INFO:                     //Use PIP for this screen

            CreateInfo();

            while(GFX_Layer(PIP1, SET_PAGE_START, 164,0) == GFX_STATUS_FAILURE);
            while(GFX_Layer(PIP1, SET_SIZE, GFX_MaxXGet()-164,GFX_MaxYGet()) == GFX_STATUS_FAILURE);
            while(GFX_Layer(PIP1, SET_PAGE, PIP_PAGE_BUFFER, 0) == GFX_STATUS_FAILURE);
            while(GFX_Layer(PIP1, SET_LAYER_START, 160,0) == GFX_STATUS_FAILURE);
            while(GFX_Layer(PIP1, ENABLE, 0, 0) == GFX_STATUS_FAILURE);

            screenState = DISPLAY_INFO;     // switch to next state
            return (0);

	case CREATE_SPEED:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);
	    CreateSpeed();
            screenState = CREATE_MAIN;                       // switch to next state
            return (1);                                                 // draw objects created

        case CREATE_COMFORT:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);
            CreateComfortScreen();                     // create window and sliders
            screenState = DISPLAY_COMFORT;   // switch to next state
            return (1);                         // draw objects created

        case CREATE_SCROLLING:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);

            GFX_TransitionParametersSet(0,0,PUSH, GFX_ActivePageGet(), BACKGROUND_BUFFER,
                       1,16,LEFT_TO_RIGHT);

            while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE);


            GFX_TransitionParametersSet(0,0,PUSH,BACKGROUND_BUFFER,GFX_ActivePageGet(),
                       1,10,TOP_TO_BOTTOM);

            while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE);

            GFX_TransitionParametersSet(0,0,PUSH,GFX_ActivePageGet(),BACKGROUND_BUFFER,
                       1,8,RIGHT_TO_LEFT);

            while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE);

            GFX_TransitionParametersSet(0,0,PUSH,BACKGROUND_BUFFER,GFX_ActivePageGet(),
                       1,5,BOTTOM_TO_TOP);

            while(GFX_Transition(&GFX_Primitive_instance.transitionParams,GFX_MaxXGet(),GFX_MaxYGet()) == GFX_STATUS_FAILURE);

            screenState = CREATE_MAIN;
            return(1);                         // draw objects created

        case CREATE_GRADIENT:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);
            CreateGradientScreen();                  // create window
            screenState = DISPLAY_GRADIENT;   // switch to next state
            return (1);                         // draw objects created

        case DISPLAY_SCROLLING:
        case DISPLAY_GRADIENT:
        case DISPLAY_COMFORT:
        case DISPLAY_SPEED:
        case DISPLAY_INFO:
            return (1);                         // redraw objects if needed

        case CREATE_ALPHABLEND:
            while(GFX_Layer(PIP1, DISABLE, 0, 0) == GFX_STATUS_FAILURE);
            CreateAlphaBlendScreen();
            screenState = DISPLAY_ALPHABLEND;
            return(1);

        case DISPLAY_ALPHABLEND:

            if((TimerTick_GetTick() - timeClock) >= 500)
            {
        	if(DisplayAlphaBlendScreen() == true)
                    screenState = CREATE_MAIN;
            }
            return (1);                         // redraw objects if needed

        default:
            break;
    }

    return (1); // release drawing control to GOL
}