From 79bb1a9932af7bfcdab67e2a1da9d9edcba87f71 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 22 Aug 2016 22:28:32 +0200 Subject: old wip --- .../pic32mx695f512h/gfx_hgc_definitions.c | 248 +++++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 firmware/src/system_config/pic32mx695f512h/gfx_hgc_definitions.c (limited to 'firmware/src/system_config/pic32mx695f512h/gfx_hgc_definitions.c') diff --git a/firmware/src/system_config/pic32mx695f512h/gfx_hgc_definitions.c b/firmware/src/system_config/pic32mx695f512h/gfx_hgc_definitions.c new file mode 100644 index 0000000..e3140af --- /dev/null +++ b/firmware/src/system_config/pic32mx695f512h/gfx_hgc_definitions.c @@ -0,0 +1,248 @@ +/******************************************************************************* + MPLAB Harmony Graphics Composer Generated Implementation File + + File Name: + gfx_hgc_definitions.c + + Summary: + Build-time generated implementation from the MPLAB Harmony + Graphics Composer. + + Description: + Build-time generated implementation from the MPLAB Harmony + Graphics Composer. + + Created with MPLAB Harmony Version 1.06 +*******************************************************************************/ +// DOM-IGNORE-BEGIN +/******************************************************************************* +Copyright (c) 2013-2014 released Microchip Technology Inc. All rights reserved. + +Microchip licenses to you the right to use, modify, copy and distribute +Software only when embedded on a Microchip microcontroller or digital signal +controller that is integrated into your product or third party product +(pursuant to the sublicense terms in the accompanying license agreement). + +You should refer to the license agreement accompanying this Software for +additional information regarding your rights and obligations. + +SOFTWARE AND DOCUMENTATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF +MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. +IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER +CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR +OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES +INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR +CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF +SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES +(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. +*******************************************************************************/ +// DOM-IGNORE-END + +#include "gfx_hgc_definitions.h" + +/*** Generated Asset References ***/ +/*** Generated ASCII Text Labels ***/ +/*** HGC Object Global ***/ +HGC_OBJECTS hgcObj; +static HGC_STATES hgcState; + +/****************************************************************************** + Function: + HGC_SCREEN_STATES GFX_HGC_GetScreenState ( void ) + + Remarks: + This function returns the screen state + */ +HGC_SCREEN_STATES GFX_HGC_GetScreenState ( void ) +{ + return hgcObj.screenState; +} + + +/****************************************************************************** + Function: + void GFX_HGC_SetScreenState ( HGC_SCREEN_STATES newState ) + + Remarks: + This function sets the screen state machine to a new state + */ +void GFX_HGC_SetScreenState ( HGC_SCREEN_STATES newState ) +{ + hgcObj.prevRefreshState = hgcObj.screenState; + hgcObj.screenState = newState; +} + + +/****************************************************************************** + Function: + void GFX_HGC_Setup ( void ) + + Summary: + This function sets up the GOL message callback and draw callbacks. + */ +void GFX_HGC_Setup ( void ) +{ +} + +/****************************************************************************** + Function: + void GFX_HGC_Tasks (SYS_MODULE_OBJ gfxObject); + + Summary: + This function is called in SYS_Tasks. The intent wait until the GFX library + is initialized before supplying items to draw +*/ +void GFX_HGC_Tasks (SYS_MODULE_OBJ gfxObject) +{ + switch ( hgcState ) + { + case HGC_STATE_INIT: + if (GFX_Status(gfxObject)==SYS_STATUS_READY) + { + GFX_HGC_Setup(); + hgcState = HGC_STATE_RUNNING; + } + break; + + case HGC_STATE_RUNNING: + //Drive screen state machine + GFX_HGC_DrawScreenTask(); + break; + + default: + break; + } +} + +/****************************************************************************** + Function: + void GFX_HGC_DrawScreenTask( void ) + + Remarks: + Task loop to drive the HGC generated screen state machine for HGC design + that has primitives only + */ +void GFX_HGC_DrawScreenTask( void ) +{ + switch (hgcObj.screenState) + { + case HGC_SCREEN_STATE_INIT: + //Draw the primary screen as selected in the Composer + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_SETUP_SCREEN_Screen1); + break; + case HGC_SCREEN_STATE_SETUP_SCREEN_Screen1: + GFX_HGC_SetupScreen(Screen1); + + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_PRE_DRAW_PRIMITIVE_SCREEN_Screen1); + break; + case HGC_SCREEN_STATE_PRE_DRAW_PRIMITIVE_SCREEN_Screen1: + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_DRAW_PRIMITIVE_SCREEN_Screen1); + break; + case HGC_SCREEN_STATE_DRAW_PRIMITIVE_SCREEN_Screen1: + GFX_HGC_DrawScreen_Primitives(Screen1); + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_POST_DRAW_PRIMITIVE_SCREEN_Screen1); + break; + case HGC_SCREEN_STATE_POST_DRAW_PRIMITIVE_SCREEN_Screen1: + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_DISPLAY_SCREEN_Screen1); + break; + case HGC_SCREEN_STATE_DISPLAY_SCREEN_Screen1: + break; + default: + break; + } +} + +/****************************************************************************** + Function: + void GFX_HGC_SetupScreen( uint8_t screenId ) + + Remarks: + Clears current screen and starts a fresh screen with its background color + */ +void GFX_HGC_SetupScreen(uint8_t screenId) +{ + switch (screenId) + { + case Screen1: + GFX_ColorSet(GFX_INDEX_0, GFX_RGBConvert(0x00, 0x00, 0x00)); + GFX_ScreenClear(GFX_INDEX_0); + break; + default: + break; + } +} + + +/****************************************************************************** + Function: + bool GFX_HGC_ChangeScreen( uint8_t screenId ) + + Output: + Returns true if a screenId matches an existing screen identifier + + Remarks: + Can be called to initiate GFX Library to draw a new screen + */ +bool GFX_HGC_ChangeScreen(uint8_t screenId) +{ + switch (screenId) + { + case Screen1: + GFX_HGC_SetScreenState(HGC_SCREEN_STATE_SETUP_SCREEN_Screen1); + break; + default: + return false; + } + + return true; // release drawing control to GOL +} + +/****************************************************************************** + Function: + bool GFX_HGC_DrawScreen_Primitives( uint8_t screenId ) + + Output: + Returns true if a screenId matches an existing screen identifier + + Remarks: + HGC-specified GFX Primitives are drawn here, grouped by screen. + GFX Primitives are drawn after GFX GOL Objects to make sure GFX GOL Objects + do not cover GFX Primitives + */ +bool GFX_HGC_DrawScreen_Primitives(uint8_t screenId) +{ + switch (screenId) + { + case Screen1: + break; + default: + return true; + } + + return true; // release drawing control to GOL +} + + +/****************************************************************************** + Function: + bool GFX_HGC_DrawItem(int itemId) + + Output: + Returns true if a itemId matches an existing item identifier + + Remarks: + Every item specified in every screen in HGC is listed in this function + */ +bool GFX_HGC_DrawItem(int itemId) +{ + switch(itemId) + { + default: + return false; // process by default + } + + return true; +} + + -- cgit v1.2.3