diff --git a/DemoProc/inc/DemoProc.h b/DemoProc/inc/DemoProc.h
index bad05d8..90a40c6 100644
--- a/DemoProc/inc/DemoProc.h
+++ b/DemoProc/inc/DemoProc.h
@@ -69,10 +69,10 @@ HMI_EVENT_TYPE_DECLARE(DATA_EVENT, DUMMY_DATA_EVENT_DATA);
//= User Macro definition. =//
//=======================================================================//
#define HMI_SCREEN_ID_DEMO_SCROLLING_TEXT (1001)
-#define HMI_SCREEN_ID_DEMO_ITEMS_BASE (1002)
+#define HMI_SCREEN_ID_DEMO_PAINT_TEXT (1002)
#define HMI_SCREEN_ID_DEMO_LIST (1003)
#define HMI_SCREEN_ID_DEMO_TEXT_NOTICE (1004)
-#define HMI_SCREEN_ID_DEMO_RTC_NOTICE (1005)
+#define HMI_SCREEN_ID_DEMO_BASIC_PAINT (1005)
#define HMI_SCREEN_ID_DEMO_VARIABLE_BOX (1006)
#define HMI_SCREEN_ID_DEMO_REAL_TIME_GRAPH (1007)
#define HMI_SCREEN_ID_DEMO_MENU (1008)
@@ -86,13 +86,14 @@ HMI_EVENT_TYPE_DECLARE(DATA_EVENT, DUMMY_DATA_EVENT_DATA);
extern HMI_ENGINE_OBJECT g_stDemoEngine;
/* Screen display objects. */
extern HMI_SCREEN_OBJECT g_stHMIDemo_ScrollingText;
-extern HMI_SCREEN_OBJECT g_stHMIDemo_ItemsBase;
extern HMI_SCREEN_OBJECT g_stHMIDemo_List;
extern HMI_SCREEN_OBJECT g_stHMIDemo_Notice;
extern HMI_SCREEN_OBJECT g_stHMIDemo_RTCNotice;
extern HMI_SCREEN_OBJECT g_stHMIDemo_VariableBox;
extern HMI_SCREEN_OBJECT g_stHMIDemo_RealtimeGraph;
extern HMI_SCREEN_OBJECT g_stHMIDemo_Menu;
+extern HMI_SCREEN_OBJECT g_stHMIDemo_BasicPaint;
+extern HMI_SCREEN_OBJECT g_stHMIDemo_TextPaint;
//=======================================================================//
//= Function declare. =//
//=======================================================================//
diff --git a/DemoProc/src/Basic.c b/DemoProc/src/Basic.c
new file mode 100644
index 0000000..84adbef
--- /dev/null
+++ b/DemoProc/src/Basic.c
@@ -0,0 +1,130 @@
+/*************************************************************************/
+/** Copyright. **/
+/** FileName: RTCNotice.c **/
+/** Author: Polarix **/
+/** Version: 1.0.0.0 **/
+/** Description: HMI demo for notice box interface and refresh screen. **/
+/*************************************************************************/
+//=======================================================================//
+//= Include files. =//
+//=======================================================================//
+#include "DemoProc.h"
+#include "HMI_Engine.h"
+#include "SGUI_Basic.h"
+
+//=======================================================================//
+//= User Macro definition. =//
+//=======================================================================//
+
+//=======================================================================//
+//= Static function declaration. =//
+//=======================================================================//
+static HMI_ENGINE_RESULT HMI_DemoBasic_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoBasic_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoBasic_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
+static HMI_ENGINE_RESULT HMI_DemoBasic_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
+
+//=======================================================================//
+//= Static variable declaration. =//
+//=======================================================================//
+HMI_SCREEN_ACTION s_stDemoBasicPaintActions = { NULL,
+ HMI_DemoBasic_Prepare,
+ HMI_DemoBasic_RefreshScreen,
+ HMI_DemoBasic_ProcessEvent,
+ HMI_DemoBasic_PostProcess
+ };
+//=======================================================================//
+//= Global variable declaration. =//
+//=======================================================================//
+HMI_SCREEN_OBJECT g_stHMIDemo_BasicPaint = { HMI_SCREEN_ID_DEMO_BASIC_PAINT,
+ &s_stDemoBasicPaintActions
+ };
+
+//=======================================================================//
+//= Function define. =//
+//=======================================================================//
+HMI_ENGINE_RESULT HMI_DemoBasic_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
+{
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(NULL != pstDeviceIF->fnClear)
+ {
+ pstDeviceIF->fnClear();
+ }
+ else
+ {
+ SGUI_Basic_DrawRectangle(pstDeviceIF, 0, 0, pstDeviceIF->stSize.iWidth, pstDeviceIF->stSize.iHeight, SGUI_COLOR_BKGCLR, SGUI_COLOR_BKGCLR);
+ }
+ HMI_DemoBasic_RefreshScreen(pstDeviceIF, pstParameters);
+ return HMI_RET_NORMAL;
+}
+
+HMI_ENGINE_RESULT HMI_DemoBasic_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
+{
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ SGUI_Basic_DrawLine(pstDeviceIF, 0, 10, 96, 10, SGUI_COLOR_FRGCLR);
+ SGUI_Basic_DrawRectangle(pstDeviceIF, 5, 5, 50, 50, SGUI_COLOR_FRGCLR, SGUI_COLOR_TRANS);
+ SGUI_Basic_DrawCircle(pstDeviceIF, 32, 32, 20, SGUI_COLOR_FRGCLR, SGUI_COLOR_FRGCLR);
+ SGUI_Basic_DrawCircle(pstDeviceIF, 96, 32, 20, SGUI_COLOR_FRGCLR, SGUI_COLOR_TRANS);
+ return HMI_RET_NORMAL;
+}
+
+HMI_ENGINE_RESULT HMI_DemoBasic_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
+{
+ /*----------------------------------*/
+ /* Variable Declaration */
+ /*----------------------------------*/
+ HMI_ENGINE_RESULT eProcessResult;
+ SGUI_INT iProcessAction;
+ KEY_PRESS_EVENT* pstKeyEvent;
+
+ /*----------------------------------*/
+ /* Initialize */
+ /*----------------------------------*/
+ eProcessResult = HMI_RET_NORMAL;
+ iProcessAction = HMI_DEMO_PROC_NO_ACT;
+ pstKeyEvent = (KEY_PRESS_EVENT*)pstEvent;
+
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(pstEvent->iType == EVENT_TYPE_ACTION)
+ {
+ // Check event is valid.
+ if(SGUI_FALSE == HMI_EVENT_SIZE_CHK(*pstKeyEvent, KEY_PRESS_EVENT))
+ {
+ // Event data is invalid.
+ eProcessResult = HMI_RET_INVALID_DATA;
+ }
+ else if(EVENT_ID_KEY_PRESS == pstEvent->iID)
+ {
+ iProcessAction = HMI_DEMO_PROC_CANCEL;
+ }
+ }
+ if(NULL != piActionID)
+ {
+ *piActionID = iProcessAction;
+ }
+
+ return eProcessResult;
+}
+
+HMI_ENGINE_RESULT HMI_DemoBasic_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
+{
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(HMI_PROCESS_SUCCESSFUL(eProcResult))
+ {
+ if(HMI_DEMO_PROC_CANCEL == iActionID)
+ {
+ HMI_GoBack(NULL);
+ }
+ }
+
+ return HMI_RET_NORMAL;
+}
+
diff --git a/DemoProc/src/DemoProc.c b/DemoProc/src/DemoProc.c
index a9cf0e3..ae20d3e 100644
--- a/DemoProc/src/DemoProc.c
+++ b/DemoProc/src/DemoProc.c
@@ -27,11 +27,12 @@ SGUI_SCR_DEV g_stDeviceInterface;
HMI_SCREEN_OBJECT* g_arrpstScreenObjs[] =
{
&g_stHMIDemo_List,
- &g_stHMIDemo_ItemsBase,
+ &g_stHMIDemo_TextPaint,
&g_stHMIDemo_VariableBox,
&g_stHMIDemo_RealtimeGraph,
&g_stHMIDemo_Menu,
- &g_stHMIDemo_Notice
+ &g_stHMIDemo_Notice,
+ &g_stHMIDemo_BasicPaint
};
HMI_ENGINE_OBJECT g_stDemoEngine;
diff --git a/DemoProc/src/ItemsBase.c b/DemoProc/src/ItemsBase.c
deleted file mode 100644
index 44f87d9..0000000
--- a/DemoProc/src/ItemsBase.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*************************************************************************/
-/** Copyright. **/
-/** FileName: List.c **/
-/** Author: Polarix **/
-/** Version: 1.0.0.0 **/
-/** Description: HMI demo for list control interface. **/
-/*************************************************************************/
-
-//=======================================================================//
-//= Include files. =//
-//=======================================================================//
-#include "DemoProc.h"
-#include "SGUI_ItemsBase.h"
-#include "SGUI_FontResource.h"
-#include "HMI_Engine.h"
-
-//=======================================================================//
-//= User Macro definition. =//
-//=======================================================================//
-#define NOTICE_TEXT_BUFFER_SIZE (64)
-
-//=======================================================================//
-//= Static function declaration. =//
-//=======================================================================//
-static HMI_ENGINE_RESULT HMI_DemoItemsBase_Initialize(SGUI_SCR_DEV* pstDeviceIF);
-static HMI_ENGINE_RESULT HMI_DemoItemsBase_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoItemsBase_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoItemsBase_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
-static HMI_ENGINE_RESULT HMI_DemoItemsBase_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
-
-//=======================================================================//
-//= Static variable declaration. =//
-//=======================================================================//
-static SGUI_ITEMS_ITEM s_arrstTestItems[] = { {"Variable box", NULL},
- {"Item2 text", NULL},
- {"Item3 text", NULL},
- {"Item4 text", NULL},
- {"Item5 text", NULL},
- {"Item6 text", NULL},
- {"Item7 text", NULL},
- };
-
-HMI_SCREEN_ACTION s_stDemoItemsBaseActions = { HMI_DemoItemsBase_Initialize,
- HMI_DemoItemsBase_Prepare,
- HMI_DemoItemsBase_RefreshScreen,
- HMI_DemoItemsBase_ProcessEvent,
- HMI_DemoItemsBase_PostProcess
- };
-
-static SGUI_ITEMS_BASE s_stDemoItemsBaseObject;
-
-//=======================================================================//
-//= Global variable declaration. =//
-//=======================================================================//
-HMI_SCREEN_OBJECT g_stHMIDemo_ItemsBase = { HMI_SCREEN_ID_DEMO_ITEMS_BASE,
- &s_stDemoItemsBaseActions
- };
-
-//=======================================================================//
-//= Function define. =//
-//=======================================================================//
-HMI_ENGINE_RESULT HMI_DemoItemsBase_Initialize(SGUI_SCR_DEV* pstDeviceIF)
-{
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- // Initialize list data.
- SGUI_SystemIF_MemorySet(&s_stDemoItemsBaseObject, 0x00, sizeof(SGUI_ITEMS_BASE));
- // Title and font size must set before initialize list object.
- s_stDemoItemsBaseObject.stLayout.iPosX = 5;
- s_stDemoItemsBaseObject.stLayout.iPosY = 5;
- s_stDemoItemsBaseObject.stLayout.iWidth = 118;
- s_stDemoItemsBaseObject.stLayout.iHeight = 54;
- //Initialize list object.
- SGUI_ItemsBase_Initialize(&s_stDemoItemsBaseObject, &SGUI_DEFAULT_FONT_8, s_arrstTestItems, sizeof(s_arrstTestItems)/sizeof(SGUI_ITEMS_ITEM));
-
- return HMI_RET_NORMAL;
-}
-
-HMI_ENGINE_RESULT HMI_DemoItemsBase_Prepare (SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
-{
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- SGUI_Basic_DrawRectangle(pstDeviceIF, 4, 4, 120, 56, SGUI_COLOR_FRGCLR, SGUI_COLOR_BKGCLR);
- SGUI_ItemsBase_Repaint(pstDeviceIF, &s_stDemoItemsBaseObject);
- return HMI_RET_NORMAL;
-}
-
-HMI_ENGINE_RESULT HMI_DemoItemsBase_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
-{
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- SGUI_Basic_DrawRectangle(pstDeviceIF, 4, 4, 62, 22, SGUI_COLOR_FRGCLR, SGUI_COLOR_BKGCLR);
- SGUI_ItemsBase_Repaint(pstDeviceIF, &s_stDemoItemsBaseObject);
- return HMI_RET_NORMAL;
-}
-
-HMI_ENGINE_RESULT HMI_DemoItemsBase_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
-{
- /*----------------------------------*/
- /* Variable Declaration */
- /*----------------------------------*/
- HMI_ENGINE_RESULT eProcessResult;
- SGUI_UINT16 uiKeyCode;
- SGUI_UINT16 uiKeyValue;
- KEY_PRESS_EVENT* pstKeyEvent;
- SGUI_INT iProcessAction;
-
- /*----------------------------------*/
- /* Initialize */
- /*----------------------------------*/
- eProcessResult = HMI_RET_NORMAL;
- pstKeyEvent = (KEY_PRESS_EVENT*)pstEvent;
- iProcessAction = HMI_DEMO_PROC_NO_ACT;
-
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- if(pstEvent->iType == EVENT_TYPE_ACTION)
- {
- // Check event is valid.
- if(SGUI_FALSE == HMI_EVENT_SIZE_CHK(*pstKeyEvent, KEY_PRESS_EVENT))
- {
- // Event data is invalid.
- eProcessResult = HMI_RET_INVALID_DATA;
- }
- else if(EVENT_ID_KEY_PRESS == pstEvent->iID)
- {
- uiKeyCode = pstKeyEvent->Data.uiKeyValue;
- uiKeyValue = KEY_CODE_VALUE(uiKeyCode);
- switch(uiKeyValue)
- {
- case KEY_VALUE_ENTER:
- {
- iProcessAction = HMI_DEMO_PROC_CONFIRM;
- break;
- }
- case KEY_VALUE_ESC:
- {
- iProcessAction = HMI_DEMO_PROC_CANCEL;
- break;
- }
- case KEY_VALUE_UP:
- {
- if(s_stDemoItemsBaseObject.iSelection > 0)
- {
- s_stDemoItemsBaseObject.iSelection -= 1;
- }
- SGUI_ItemsBase_Repaint(pstDeviceIF, &s_stDemoItemsBaseObject);
- break;
- }
- case KEY_VALUE_DOWN:
- {
- if(s_stDemoItemsBaseObject.iSelection < s_stDemoItemsBaseObject.iCount-1)
- {
- s_stDemoItemsBaseObject.iSelection += 1;
- }
- SGUI_ItemsBase_Repaint(pstDeviceIF, &s_stDemoItemsBaseObject);
- break;
- }
- default:
- {
- break;
- }
- }
- }
- }
- if(NULL != piActionID)
- {
- *piActionID = iProcessAction;
- }
-
- return eProcessResult;
-}
-
-HMI_ENGINE_RESULT HMI_DemoItemsBase_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
-{
- if(HMI_DEMO_PROC_CONFIRM == iActionID)
- {
- switch(s_stDemoItemsBaseObject.iSelection)
- {
- case 0:
- {
- HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_VARIABLE_BOX, NULL);
- break;
- }
- default:
- {
-
- /* do nothing. */
- }
- }
- }
- else if(HMI_DEMO_PROC_CANCEL == iActionID)
- {
- HMI_GoBack(NULL);
- }
-
- return HMI_RET_NORMAL;
-}
-
diff --git a/DemoProc/src/List.c b/DemoProc/src/List.c
index 920d388..4b93940 100644
--- a/DemoProc/src/List.c
+++ b/DemoProc/src/List.c
@@ -10,7 +10,6 @@
#include "DemoProc.h"
#include "SGUI_List.h"
#include "SGUI_FontResource.h"
-#include "HMI_Engine.h"
#include "Resource.h"
//=======================================================================//
@@ -30,14 +29,12 @@ static HMI_ENGINE_RESULT HMI_DemoList_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI
//=======================================================================//
//= Static variable declaration. =//
//=======================================================================//
-static SGUI_ITEMS_ITEM s_arrstListItems[] = { {"输入框组件", NULL},
+static SGUI_ITEMS_ITEM s_arrstListItems[] = { {"基础绘图", NULL},
+ {"文字显示", NULL},
+ {"输入框组件", NULL},
{"实时曲线组件", NULL},
{"菜单组件", NULL},
- {"提示框组件", NULL},
- {"还没安排2", NULL},
- {"还没安排3", NULL},
- {"还没安排4", NULL},
- {"还没安排5", NULL},
+ {"提示框组件", NULL}
};
static SGUI_LIST_STRUCT s_stDemoListObject = {0x00};
@@ -177,22 +174,32 @@ HMI_ENGINE_RESULT HMI_DemoList_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE
{
switch(s_stDemoListObject.stItems.iSelection)
{
- case 0:
+ case 0:
{
- HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_VARIABLE_BOX, NULL);
+ HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_BASIC_PAINT, NULL);
break;
}
case 1:
{
- HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_REAL_TIME_GRAPH, NULL);
+ HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_PAINT_TEXT, NULL);
break;
}
case 2:
{
- HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_MENU, NULL);
+ HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_VARIABLE_BOX, NULL);
break;
}
case 3:
+ {
+ HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_REAL_TIME_GRAPH, NULL);
+ break;
+ }
+ case 4:
+ {
+ HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_MENU, NULL);
+ break;
+ }
+ case 5:
{
HMI_SwitchScreen(HMI_SCREEN_ID_DEMO_TEXT_NOTICE, "This is a test notice text.");
break;
diff --git a/DemoProc/src/Notice.c b/DemoProc/src/Notice.c
index 514b567..67ea790 100644
--- a/DemoProc/src/Notice.c
+++ b/DemoProc/src/Notice.c
@@ -19,11 +19,11 @@
//=======================================================================//
//= Static function declaration. =//
//=======================================================================//
-static HMI_ENGINE_RESULT HMI_DemoNotice_Initialize(SGUI_SCR_DEV* pstIFObj);
-static HMI_ENGINE_RESULT HMI_DemoNotice_Prepare(SGUI_SCR_DEV* pstIFObj, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoNotice_RefreshScreen(SGUI_SCR_DEV* pstIFObj, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoNotice_ProcessEvent(SGUI_SCR_DEV* pstIFObj, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
-static HMI_ENGINE_RESULT HMI_DemoNotice_PostProcess(SGUI_SCR_DEV* pstIFObj, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
+static HMI_ENGINE_RESULT HMI_DemoNotice_Initialize(SGUI_SCR_DEV* pstDeviceIF);
+static HMI_ENGINE_RESULT HMI_DemoNotice_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoNotice_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoNotice_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
+static HMI_ENGINE_RESULT HMI_DemoNotice_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
//=======================================================================//
//= Static variable declaration. =//
@@ -48,16 +48,16 @@ HMI_SCREEN_OBJECT g_stHMIDemo_Notice = { HMI_SCREEN_ID_DEMO_TEXT_NOTICE,
//=======================================================================//
//= Function define. =//
//=======================================================================//
-HMI_ENGINE_RESULT HMI_DemoNotice_Initialize(SGUI_SCR_DEV* pstIFObj)
+HMI_ENGINE_RESULT HMI_DemoNotice_Initialize(SGUI_SCR_DEV* pstDeviceIF)
{
SGUI_SystemIF_MemorySet(s_szDemoNoticeText, 0x00, sizeof(SGUI_CHAR)*(NOTICE_TEXT_BUFFER_SIZE+1));
s_stDemoNoticeBox.cszNoticeText = s_szDemoNoticeText;
s_stDemoNoticeBox.pstIcon = NULL;
- SGUI_Notice_FitArea(pstIFObj, &(s_stDemoNoticeBox.stLayout));
+ SGUI_Notice_FitArea(pstDeviceIF, &(s_stDemoNoticeBox.stLayout));
return HMI_RET_NORMAL;
}
-HMI_ENGINE_RESULT HMI_DemoNotice_Prepare(SGUI_SCR_DEV* pstIFObj, const void* pstParameters)
+HMI_ENGINE_RESULT HMI_DemoNotice_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
{
/*----------------------------------*/
/* Process */
@@ -71,17 +71,17 @@ HMI_ENGINE_RESULT HMI_DemoNotice_Prepare(SGUI_SCR_DEV* pstIFObj, const void* pst
SGUI_SystemIF_StringLengthCopy(s_szDemoNoticeText, (SGUI_SZSTR)pstParameters, NOTICE_TEXT_BUFFER_SIZE);
s_szDemoNoticeText[NOTICE_TEXT_BUFFER_SIZE] = '\0';
}
- SGUI_Notice_Repaint(pstIFObj, &s_stDemoNoticeBox, &SGUI_DEFAULT_FONT_16, 0);
+ SGUI_Notice_Repaint(pstDeviceIF, &s_stDemoNoticeBox, &SGUI_DEFAULT_FONT_16, 0);
return HMI_RET_NORMAL;
}
-HMI_ENGINE_RESULT HMI_DemoNotice_RefreshScreen(SGUI_SCR_DEV* pstIFObj, const void* pstParameters)
+HMI_ENGINE_RESULT HMI_DemoNotice_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
{
- SGUI_Notice_Repaint(pstIFObj, &s_stDemoNoticeBox, &SGUI_DEFAULT_FONT_16, 0);
+ SGUI_Notice_Repaint(pstDeviceIF, &s_stDemoNoticeBox, &SGUI_DEFAULT_FONT_16, 0);
return HMI_RET_NORMAL;
}
-HMI_ENGINE_RESULT HMI_DemoNotice_ProcessEvent(SGUI_SCR_DEV* pstIFObj, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
+HMI_ENGINE_RESULT HMI_DemoNotice_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
{
/*----------------------------------*/
/* Variable Declaration */
@@ -126,7 +126,7 @@ HMI_ENGINE_RESULT HMI_DemoNotice_ProcessEvent(SGUI_SCR_DEV* pstIFObj, const HMI_
return eProcessResult;
}
-HMI_ENGINE_RESULT HMI_DemoNotice_PostProcess(SGUI_SCR_DEV* pstIFObj, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
+HMI_ENGINE_RESULT HMI_DemoNotice_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
{
/*----------------------------------*/
/* Process */
diff --git a/DemoProc/src/RTCNotice.c b/DemoProc/src/RTCNotice.c
deleted file mode 100644
index 4b071eb..0000000
--- a/DemoProc/src/RTCNotice.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*************************************************************************/
-/** Copyright. **/
-/** FileName: RTCNotice.c **/
-/** Author: Polarix **/
-/** Version: 1.0.0.0 **/
-/** Description: HMI demo for notice box interface and refresh screen. **/
-/*************************************************************************/
-//=======================================================================//
-//= Include files. =//
-//=======================================================================//
-#include "DemoProc.h"
-#include "HMI_Engine.h"
-#include "SGUI_Notice.h"
-#include "SGUI_Common.h"
-
-//=======================================================================//
-//= User Macro definition. =//
-//=======================================================================//
-#define NOTICE_RTC_BUFFER_SIZE (64)
-
-//=======================================================================//
-//= Static function declaration. =//
-//=======================================================================//
-static HMI_ENGINE_RESULT HMI_DemoRTCNotice_Prepare(SGUI_SCR_DEV* pstIFObj, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoRTCNotice_RefreshScreen(SGUI_SCR_DEV* pstIFObj, const void* pstParameters);
-static HMI_ENGINE_RESULT HMI_DemoRTCNotice_ProcessEvent(SGUI_SCR_DEV* pstIFObj, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
-static HMI_ENGINE_RESULT HMI_DemoRTCNotice_PostProcess(SGUI_SCR_DEV* pstIFObj, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
-
-//=======================================================================//
-//= Static variable declaration. =//
-//=======================================================================//
-static char s_szRTCNoticeText[NOTICE_RTC_BUFFER_SIZE+1] = {0x00};
-HMI_SCREEN_ACTION s_stDemoRTCNoticeActions = { NULL,
- HMI_DemoRTCNotice_Prepare,
- HMI_DemoRTCNotice_RefreshScreen,
- HMI_DemoRTCNotice_ProcessEvent,
- HMI_DemoRTCNotice_PostProcess
- };
-//=======================================================================//
-//= Global variable declaration. =//
-//=======================================================================//
-HMI_SCREEN_OBJECT g_stHMIDemo_RTCNotice = { HMI_SCREEN_ID_DEMO_RTC_NOTICE,
- &s_stDemoRTCNoticeActions
- };
-
-//=======================================================================//
-//= Function define. =//
-//=======================================================================//
-HMI_ENGINE_RESULT HMI_DemoRTCNotice_Prepare(SGUI_SCR_DEV* pstIFObj, const void* pstParameters)
-{
- RTCTimerEnable(true);
- SGUI_SystemIF_MemorySet(s_szRTCNoticeText, 0x00, sizeof(SGUI_CHAR)*(NOTICE_RTC_BUFFER_SIZE+1));
- HMI_DemoRTCNotice_RefreshScreen(pstIFObj, NULL);
- return HMI_RET_NORMAL;
-}
-
-HMI_ENGINE_RESULT HMI_DemoRTCNotice_RefreshScreen(SGUI_SCR_DEV* pstIFObj, const void* pstParameters)
-{
- /*----------------------------------*/
- /* Variable Declaration */
- /*----------------------------------*/
- SGUI_TIME stRTCTime;
-
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- SGUI_SystemIF_GetNowTime(&stRTCTime);
- sprintf(s_szRTCNoticeText, DEMO_RTC_NOTICE_TEXT_FMT,
- stRTCTime.Year, stRTCTime.Month, stRTCTime.Day,
- stRTCTime.Hour, stRTCTime.Minute, stRTCTime.Second);
- SGUI_Notice_Repaint(pstIFObj, s_szRTCNoticeText, &SGUI_DEFAULT_FONT, 0, SGUI_ICON_INFORMATION);
- return HMI_RET_NORMAL;
-}
-
-HMI_ENGINE_RESULT HMI_DemoRTCNotice_ProcessEvent(SGUI_SCR_DEV* pstIFObj, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
-{
- /*----------------------------------*/
- /* Variable Declaration */
- /*----------------------------------*/
- HMI_ENGINE_RESULT eProcessResult;
- SGUI_TIME stRTCTime;
- SGUI_UINT16 uiKeyValue;
- KEY_PRESS_EVENT* pstKeyEvent;
- SGUI_INT iProcessAction;
-
- /*----------------------------------*/
- /* Initialize */
- /*----------------------------------*/
- eProcessResult = HMI_RET_NORMAL;
- iProcessAction = HMI_DEMO_PROC_NO_ACT;
-
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- if(NULL != pstEvent)
- {
- if(EVENT_TYPE_ACTION == pstEvent->iType)
- {
- if(EVENT_ID_KEY_PRESS == pstEvent->iID)
- {
- pstKeyEvent = (KEY_PRESS_EVENT*)pstEvent;
- uiKeyValue = KEY_CODE_VALUE(pstKeyEvent->Data.uiKeyValue);
- switch(uiKeyValue)
- {
- case KEY_VALUE_ENTER:
- case KEY_VALUE_ESC:
- {
- iProcessAction = HMI_DEMO_PROC_CANCEL;
- break;
- }
- }
- }
- }
- else if(EVENT_TYPE_DATA == pstEvent->iType)
- {
- if(EVENT_ID_RTC == pstEvent->iID)
- {
- SGUI_SystemIF_GetNowTime(&stRTCTime);
- sprintf(s_szRTCNoticeText, DEMO_RTC_NOTICE_TEXT_FMT,
- stRTCTime.Year, stRTCTime.Month, stRTCTime.Day,
- stRTCTime.Hour, stRTCTime.Minute, stRTCTime.Second);
- SGUI_Notice_Repaint(pstIFObj, s_szRTCNoticeText, SGUI_FONT_SIZE_H12, 0, SGUI_ICON_INFORMATION);
- }
- }
- }
- if(NULL != piActionID)
- {
- *piActionID = iProcessAction;
- }
-
- return eProcessResult;
-}
-
-HMI_ENGINE_RESULT HMI_DemoRTCNotice_PostProcess(SGUI_SCR_DEV* pstIFObj, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
-{
- if(HMI_PROCESS_SUCCESSFUL(eProcResult))
- {
- if(HMI_DEMO_PROC_CANCEL == iActionID)
- {
- RTCTimerEnable(false);
- HMI_GoBack(NULL);
- }
- }
-
- return HMI_RET_NORMAL;
-}
-
diff --git a/DemoProc/src/Text.c b/DemoProc/src/Text.c
new file mode 100644
index 0000000..71606a7
--- /dev/null
+++ b/DemoProc/src/Text.c
@@ -0,0 +1,163 @@
+/*************************************************************************/
+/** Copyright. **/
+/** FileName: Text.c **/
+/** Author: Polarix **/
+/** Description: HMI demo for text paint interface. **/
+/*************************************************************************/
+
+//=======================================================================//
+//= Include files. =//
+//=======================================================================//
+#include "DemoProc.h"
+#include "SGUI_Text.h"
+#include "SGUI_FontResource.h"
+#include "Resource.h"
+
+//=======================================================================//
+//= Static function declaration. =//
+//=======================================================================//
+static HMI_ENGINE_RESULT HMI_DemoText_Prepare(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoText_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters);
+static HMI_ENGINE_RESULT HMI_DemoText_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID);
+static HMI_ENGINE_RESULT HMI_DemoText_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID);
+
+//=======================================================================//
+//= Static variable declaration. =//
+//=======================================================================//
+HMI_SCREEN_ACTION s_stDemoTextActions = { NULL,
+ HMI_DemoText_Prepare,
+ HMI_DemoText_RefreshScreen,
+ HMI_DemoText_ProcessEvent,
+ HMI_DemoText_PostProcess
+ };
+
+//=======================================================================//
+//= Global variable declaration. =//
+//=======================================================================//
+HMI_SCREEN_OBJECT g_stHMIDemo_TextPaint = { HMI_SCREEN_ID_DEMO_PAINT_TEXT,
+ &s_stDemoTextActions
+ };
+
+//=======================================================================//
+//= Function define. =//
+//=======================================================================//
+
+HMI_ENGINE_RESULT HMI_DemoText_Prepare (SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
+{
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(NULL != pstDeviceIF->fnClear)
+ {
+ pstDeviceIF->fnClear();
+ }
+ else
+ {
+ SGUI_Basic_DrawRectangle(pstDeviceIF, 0, 0, pstDeviceIF->stSize.iWidth, pstDeviceIF->stSize.iHeight, SGUI_COLOR_BKGCLR, SGUI_COLOR_BKGCLR);
+ }
+ HMI_DemoText_RefreshScreen(pstDeviceIF, pstParameters);
+ return HMI_RET_NORMAL;
+}
+
+HMI_ENGINE_RESULT HMI_DemoText_RefreshScreen(SGUI_SCR_DEV* pstDeviceIF, const void* pstParameters)
+{
+ /*----------------------------------*/
+ /* Variable Declaration */
+ /*----------------------------------*/
+ SGUI_RECT stDisplayArea;
+ SGUI_POINT stInnerPos;
+
+ /*----------------------------------*/
+ /* Initialize */
+ /*----------------------------------*/
+ stInnerPos.iPosX = 0;
+ stInnerPos.iPosY = 0;
+
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ stDisplayArea.iPosX = 1;
+ stDisplayArea.iPosY = 1;
+ stDisplayArea.iWidth = 62;
+ stDisplayArea.iHeight = SGUI_DEFAULT_FONT_MiniNum.iHeight+1;
+ SGUI_Text_DrawText(pstDeviceIF, "1234567890", &SGUI_DEFAULT_FONT_MiniNum, &stDisplayArea, &stInnerPos, SGUI_DRAW_NORMAL);
+
+ stDisplayArea.iPosY += stDisplayArea.iHeight;
+ stDisplayArea.iWidth = 62;
+ stDisplayArea.iHeight = SGUI_DEFAULT_FONT_8.iHeight+1;
+ SGUI_Text_DrawText(pstDeviceIF, "8PIX ASCII CHAR", &SGUI_DEFAULT_FONT_8, &stDisplayArea, &stInnerPos, SGUI_DRAW_NORMAL);
+
+ stDisplayArea.iPosY += stDisplayArea.iHeight;
+ stDisplayArea.iWidth = 62;
+ stDisplayArea.iHeight = SGUI_DEFAULT_FONT_12.iHeight+1;
+ SGUI_Text_DrawText(pstDeviceIF, "12Pixel FZXS Default", &SGUI_DEFAULT_FONT_12, &stDisplayArea, &stInnerPos, SGUI_DRAW_REVERSE);
+
+ stDisplayArea.iPosY += stDisplayArea.iHeight;
+ stDisplayArea.iWidth = 62;
+ stDisplayArea.iHeight = SGUI_DEFAULT_FONT_12.iHeight+1;
+ SGUI_Text_DrawText(pstDeviceIF, "自定义中文资源", &GB2312_FZXS12, &stDisplayArea, &stInnerPos, SGUI_DRAW_NORMAL);
+
+ stDisplayArea.iPosX = 64;
+ stDisplayArea.iPosY = 1;
+ stDisplayArea.iWidth = 62;
+ stDisplayArea.iHeight = 62;
+ SGUI_Text_DrawMultipleLinesText(pstDeviceIF, "多行文字显示接口演示12345678ABCD", &GB2312_FZXS12, &stDisplayArea, 0, SGUI_DRAW_NORMAL);
+ return HMI_RET_NORMAL;
+}
+
+HMI_ENGINE_RESULT HMI_DemoText_ProcessEvent(SGUI_SCR_DEV* pstDeviceIF, const HMI_EVENT_BASE* pstEvent, SGUI_INT* piActionID)
+{
+ /*----------------------------------*/
+ /* Variable Declaration */
+ /*----------------------------------*/
+ HMI_ENGINE_RESULT eProcessResult;
+ SGUI_INT iProcessAction;
+ KEY_PRESS_EVENT* pstKeyEvent;
+
+ /*----------------------------------*/
+ /* Initialize */
+ /*----------------------------------*/
+ eProcessResult = HMI_RET_NORMAL;
+ iProcessAction = HMI_DEMO_PROC_NO_ACT;
+ pstKeyEvent = (KEY_PRESS_EVENT*)pstEvent;
+
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(pstEvent->iType == EVENT_TYPE_ACTION)
+ {
+ // Check event is valid.
+ if(SGUI_FALSE == HMI_EVENT_SIZE_CHK(*pstKeyEvent, KEY_PRESS_EVENT))
+ {
+ // Event data is invalid.
+ eProcessResult = HMI_RET_INVALID_DATA;
+ }
+ else if(EVENT_ID_KEY_PRESS == pstEvent->iID)
+ {
+ iProcessAction = HMI_DEMO_PROC_CANCEL;
+ }
+ }
+ if(NULL != piActionID)
+ {
+ *piActionID = iProcessAction;
+ }
+
+ return eProcessResult;
+}
+
+HMI_ENGINE_RESULT HMI_DemoText_PostProcess(SGUI_SCR_DEV* pstDeviceIF, HMI_ENGINE_RESULT eProcResult, SGUI_INT iActionID)
+{
+ /*----------------------------------*/
+ /* Process */
+ /*----------------------------------*/
+ if(HMI_PROCESS_SUCCESSFUL(eProcResult))
+ {
+ if(HMI_DEMO_PROC_CANCEL == iActionID)
+ {
+ HMI_GoBack(NULL);
+ }
+ }
+
+ return HMI_RET_NORMAL;
+}
+
diff --git a/Documents/Source/API.txt b/Documents/Source/API.txt
index e65c966..0c2a848 100644
--- a/Documents/Source/API.txt
+++ b/Documents/Source/API.txt
@@ -1,837 +1,363 @@
------------------------ Page 1-----------------------
-
-SimpleGUI
-
-一套针对单色显示屏的开源 GUI 接口
-
- SimpleGUI API 文档
-
- 开源,是一种态度。
-
------------------------ Page 2-----------------------
-
-目录
-
- 目录.................................................................................................................................2
-
- 文件结构 ........................................................................................................................3
-
- 环境参数设置 ................................................................................................................4
-
- 数据类型定义 ................................................................................................................ 5
-
- API ..................................................................................................................................7
-
------------------------ Page 3-----------------------
-
-文件结构
-
- Todo
-
------------------------ Page 4-----------------------
-
-环境参数设置
-
- 为方便用户配置和移植,SimpleGUI 在 SGUI _Config.h 文件中定义了一些列的控制
-
- 和开关宏,用户可以通过打开、关闭以及修改宏定义的值来对 SimpleGUI 的一些全局属性
-
- 进行修改。
-
- 1、_SIMPLE_GUI_ENABLE_ICONV_GB2312_
-
- 此宏定义关联文字显示 API 对非 ASCII 文字的解码方式。设置值大于 0 时有效 ,文字
-
- 相关的 API 接口将会视输入的文字为 UTF-8 格式并转换成 GB2312 格式进行解析 ,若此值
-
- 为 0 ,则视输入文字为 GB2312 格式进行解析。具体操作将会在“文字显示”章节详细阐
-
- 述。
-
- 2、_SIMPLE_GUI_VIRTUAL_ENVIRONMENT_SIMULATOR_
-
- 此宏定义关联 SimpleGUI 的运行环境 ,设置值大于 0 时有效。当此宏定义有效 ,意味
-
- 着 SimpleGUI 正运行于模拟环境中 ,用户在移植到目标平台后 ,请将此宏定义的值修改为
-
- 0。
-
- 3、_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_
-
- 此宏定义关联 SimpleGUI 移植目标平台的动态内存操作 , 设置值大于 0 时有效。当
-
- 此宏定义设置为有效时 ,意味着目标平台已实现了动态内存管理或支持动态内存管理 ,且
-
- 用户已经做好相应的实现或移植 ,此时 SimpleGUI 的相关依赖内容也会被使能 ,如列表项
-
- 目的动态增减。
-
- 4、_SIMPLE_GUI_ENABLE_BASIC_FONT_
-
- 此宏定义关联 SimpleGUI 的内置基础字体 , 设置值大于 0 时有效。SimpleGUI 内部
-
- 存储了一组尺寸为 6*8 像素的可见 ASCII 字符集数据 ,当此宏定义有效时 ,此套字体数据
-
- 将被支持 ,且文字显示 API 将可以使用此文字数据显示基本 ASCII 字符内容。
-
- 此功能设计为 ,如果用户使用外部字库且外部字库出现损坏或数据异常时 ,可以使用
-
- 此字库数据输出一些警告或调试信息。
-
+ 为方便用户配置和移植,SimpleGUI 在 SGUI _Config.h 文件中定义了一些列的控制
+ 和开关宏,用户可以通过打开、关闭以及修改宏定义的值来对 SimpleGUI 的一些全局属性
+ 进行修改。
+ 1、_SIMPLE_GUI_ENABLE_ICONV_GB2312_
+ 此宏定义关联文字显示 API 对非 ASCII 文字的解码方式。设置值大于 0 时有效,文字
+ 相关的 API 接口将会视输入的文字为 UTF-8 格式并转换成 GB2312 格式进行解析,若此值
+ 为 0,则视输入文字为 GB2312 格式进行解析。具体操作将会在“文字显示”章节详细阐
+ 述。
+ 2、_SIMPLE_GUI_VIRTUAL_ENVIRONMENT_SIMULATOR_
+ 此宏定义关联 SimpleGUI 的运行环境,设置值大于 0 时有效。当此宏定义有效,意味
+ 着 SimpleGUI 正运行于模拟环境中,用户在移植到目标平台后,请将此宏定义的值修改为
+ 0。
+ 3、_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_
+ 此宏定义关联 SimpleGUI 移植目标平台的动态内存操作, 设置值大于 0 时有效。当
+ 此宏定义设置为有效时,意味着目标平台已实现了动态内存管理或支持动态内存管理,且
+ 用户已经做好相应的实现或移植,此时 SimpleGUI 的相关依赖内容也会被使能,如列表项
+ 目的动态增减。
+ 4、_SIMPLE_GUI_ENABLE_BASIC_FONT_
+ 此宏定义关联 SimpleGUI 的内置基础字体, 设置值大于 0 时有效。SimpleGUI 内部
+ 存储了一组尺寸为 6*8 像素的可见 ASCII 字符集数据,当此宏定义有效时,此套字体数据
+ 将被支持,且文字显示 API 将可以使用此文字数据显示基本 ASCII 字符内容。
+ 此功能设计为,如果用户使用外部字库且外部字库出现损坏或数据异常时,可以使用
+ 此字库数据输出一些警告或调试信息。
----------------------- Page 5-----------------------
-数据类型定义
-
- 1 基本数据类型定义。
-
- 为避免因平台和编译器的差异造成的对基本数据类型的定义不同 ,进而导致代码产生
-
- 不可预知的错误 ,SimpleGUI 在 SGUI_Typedef.h 文件中重新定义了包括整数、字符、字
-
- 符指针在内的一系列基本数据类型 ,在 SimpleGUI 内部的代码实现中将一致性的使用重新
-
- 定义过的数据类型 ,用户需要在使用前明确所在平台的数据类型定义并作出相应修改 ,以
-
- 避免因溢出或其他异常导致的错误。
-
- 具体内容请参照 SGUI_Typedef.h 文件。
-
- 2 特殊数据类型定义。
-
- 为方便 API 的实现、表达与使用 ,SimpleGUI 在基本数据类型的基础上 ,定义了一些
-
- 特殊的数据结构。
-
- 2.1 矩形区域
-
- 此定义主要用于位图绘制时 ,标示显示区域、实际位图数据与位图数据偏移 ,其原
-
- 型定义如下 :
-
- typedef struct _st_rectangle_
- {
- SGUI_INT PosX;
- SGUI_INT PosY;
- SGUI_INT Width;
- SGUI_INT Height;
- }SGUI_RECT_AREA;
-
- PosX 为矩形左上角的 X 坐标。
-
- PosY 为矩形左上角的 Y 坐标。
-
- Width 为矩形宽度。
-
- Height 为矩形高度。
-
- 由于此数据结构是为绘图设计 ,在实际使用中 ,除了以上四项参数外 ,可能还需要
-
- 其他判断 ,为此 ,此数据类型还有相应的运算宏定义 :
-
- #define RECTANGLE_X_START(ST) ((ST).PosX)
- #define RECTANGLE_X_END(ST) (((ST).PosX + (ST).Width - 1))
- #define RECTANGLE_Y_START(ST) ((ST).PosY)
- #define RECTANGLE_Y_END(ST) (((ST).PosY + (ST).Height - 1))
- #define RECTANGLE_WIDTH(ST) ((ST).Width)
- #define RECTANGLE_HEIGHT(ST) ((ST).Height)
- #define RECTANGLE_VALID_WIDTH(ST)
- ((RECTANGLE_X_START(ST)>0)?RECTANGLE_WIDTH(ST):(RECTANGLE_WIDTH(ST)+RECTANGLE_X_START(ST))
- )
- #define RECTANGLE_VALID_HEIGHT(ST)
- ((RECTANGLE_Y_START(ST)>0)?RECTANGLE_HEIGHT(ST):(RECTANGLE_HEIGHT(ST)+RECTANGLE_Y_START(ST
- )))
-
- RECTANGLE_X_START 意为矩形左边界 X 轴坐标。
-
- RECTANGLE_X_END 意为矩形右边界 X 坐标。
-
- RECTANGLE_Y_START 意为矩形上边界 Y 坐标。
-
- RECTANGLE_Y_END 意为矩形下边界 Y 坐标。
-
+数据类型定义
+ 1 基本数据类型定义。
+ 为避免因平台和编译器的差异造成的对基本数据类型的定义不同,进而导致代码产生不可预知的错误,SimpleGUI 在 SGUI_Typedef.h 文件中重新定义了包括整数、字符、字
+ 符指针在内的一系列基本数据类型,在 SimpleGUI 内部的代码实现中将一致性的使用重新定义过的数据类型,用户需要在使用前明确所在平台的数据类型定义并作出相应修改,以
+ 避免因溢出或其他异常导致的错误。
+ 具体内容请参照 SGUI_Typedef.h 文件。
+ 2 特殊数据类型定义。
+ 为方便 API 的实现、表达与使用,SimpleGUI 在基本数据类型的基础上,定义了一些特殊的数据结构。
+ 2.1 矩形区域
+ 此定义主要用于位图绘制时,标示显示区域、实际位图数据与位图数据偏移,其原型定义如下 :
+ typedef struct _st_rectangle_
+ {
+ SGUI_INT iPosX;
+ SGUI_INT iPosY;
+ SGUI_INT iWidth;
+ SGUI_INT iHeight;
+ }SGUI_RECT;
+ iPosX 为矩形左上角的 X 坐标。
+ iPosY 为矩形左上角的 Y 坐标。
+ iWidth 为矩形宽度。
+ iHeight 为矩形高度。
+ 由于此数据结构是为绘图设计,在实际使用中,除了以上四项参数外,可能还需要其他判断,为此,此数据类型还有相应的运算宏定义:
+ #define RECTANGLE_X_START(ST) ((ST).PosX) #define RECTANGLE_X_END(ST) (((ST).PosX + (ST).Width - 1)) #define RECTANGLE_Y_START(ST) ((ST).PosY) #define RECTANGLE_Y_END(ST) (((ST).PosY + (ST).Height - 1)) #define RECTANGLE_WIDTH(ST) ((ST).Width) #define RECTANGLE_HEIGHT(ST) ((ST).Height) #define RECTANGLE_VALID_WIDTH(ST) ((RECTANGLE_X_START(ST)>0)?RECTANGLE_WIDTH(ST):(RECTANGLE_WIDTH(ST)+RECTANGLE_X_START(ST)) ) #define RECTANGLE_VALID_HEIGHT(ST) ((RECTANGLE_Y_START(ST)>0)?RECTANGLE_HEIGHT(ST):(RECTANGLE_HEIGHT(ST)+RECTANGLE_Y_START(ST )))
+ RECTANGLE_X_START 意为矩形左边界 X 轴坐标。
+ RECTANGLE_X_END 意为矩形右边界 X 坐标。
+ RECTANGLE_Y_START 意为矩形上边界 Y 坐标。
+ RECTANGLE_Y_END 意为矩形下边界 Y 坐标。
----------------------- Page 6-----------------------
- RECTANGLE_WIDTH 意为矩形宽度。
-
- RECTANGLE_HEIGHT 意为矩形高度。
-
- RECTANGLE_VALID_WIDTH 意为矩形的可见宽度。
-
- RECTANGLE_VALID_HEIGHT 意为矩形的可见高度。
-
- 2.2 实时时钟
-
- 此定义主要用于在 HMI 引擎中调用和显示实时时钟 ,与共通函数中的 GetNowTime
-
-函数搭配使用 ,原型定义如下 :
-
- typedef struct
- {
- SGUI_UINT16 Year;
- SGUI_UINT16 Month;
- SGUI_UINT16 Day;
- SGUI_UINT16 Hour;
- SGUI_UINT16 Minute;
- SGUI_UINT16 Second;
- }SGUI_TIME;
-
- 其中 Year、Month、Day、Hour、Minute、Second 分别对应年、月、日时、分、
-
-秒。
-
+ RECTANGLE_WIDTH 意为矩形宽度。
+ RECTANGLE_HEIGHT 意为矩形高度。
+ RECTANGLE_VALID_WIDTH 意为矩形的可见宽度。
+ RECTANGLE_VALID_HEIGHT 意为矩形的可见高度。
+ 2.2 实时时钟
+ 此定义主要用于在 HMI 引擎中调用和显示实时时钟,与共通函数中的 GetNowTime
+函数搭配使用,原型定义如下 :
+ typedef struct { SGUI_UINT16 Year; SGUI_UINT16 Month; SGUI_UINT16 Day; SGUI_UINT16 Hour; SGUI_UINT16 Minute; SGUI_UINT16 Second; }SGUI_TIME;
+ 其中 Year、Month、Day、Hour、Minute、Second 分别对应年、月、日时、分、
+秒。
----------------------- Page 7-----------------------
-API
-
- 1. 绘图 API
-
- 绘图 API 的实现文件位于 GUI 文件夹中 ,主要负责显示屏硬件的控制与屏幕绘
-
- 图。
-
- SimpleGUI 的绘图 API 名称全部遵从以下格式
-
- SGUI_分类_函数名(参数…)
-
- 所有绘图 API 均以 SGUI 开头 ,分类表示这个函数的用途类型 ,后面的函数名
-
- 则是标识函数的具体用途。
-
- 1.1 共通处理
-
- 共通处理函数实现在 SGUI_Common.c 文件中 ,主要负责 SimpleGUI 的全
-
- 局共通处理和 SimpleGUI 与外部的数据交互 ,函数名全部以 SGUI_Common
-
- 开始。
-
- 1.1.1 SGUI_Common_IntegerToStringWithDecimalPoint
-
- 功能描述 :将一个有符号整数转化为字符串并在指定位置插入小数点。
-
- 原型声明 :SGUI_SIZE SGUI_Common_IntegerToStringWithDecimalPoint
-
- (SGUI_INT iInteger, SGUI_UINT uiDecimalPlaces, SGUI_PSZSTR
-
- pszStringBuffer, SGUI_INT iAlignment, SGUI_CHAR cFillCharacter)
-
- 参数说明 :
-
- iInteger :将要被转换的数字。
-
- uiDecimalPlaces :小数位数 ,如果为 0 则不插入小数点。
-
- pszStringBuffer :转换输出字符串的输出缓存。
-
- iAlignment :对其方式与宽度 ,单位为半角字符宽度 ,大于 0 则右对齐 ,
-
- 小于 0 则左对齐。如果转换完的宽度大于对齐宽度 ,则以转换完的实际宽度为
-
- 准。
-
- cFillCharacter :若对其后还有留白位置 ,则以此字符填充 ,通常使用空
-
- 格。
-
- 返回值 :转换的字符串长度。
-
- 注意事项 :请注意转换输出缓冲区的长度 ,如果发生内存越界 ,将产生不可预
-
- 知的错误。
-
- 1.1.2 SGUI_Common_IntegerToString
-
- 功能描述 :将一个有符号整数转化为字符串。
-
- 原型声明 :SGUI_SIZE SGUI_Common_IntegerToString
-
- (SGUI_INT iInteger, SGUI_PSZSTR pszStringBuffer, SGUI_UINT uiBase,
-
- SGUI_INT iAlignment, SGUI_CHAR cFillCharacter)
-
+API
+ 1. 绘图 API
+ 绘图 API 的实现文件位于 GUI 文件夹中,主要负责显示屏硬件的控制与屏幕绘
+ 图。
+ SimpleGUI 的绘图 API 名称全部遵从以下格式
+ SGUI_分类_函数名(参数…)
+ 所有绘图 API 均以 SGUI 开头,分类表示这个函数的用途类型,后面的函数名
+ 则是标识函数的具体用途。
+ 1.1 共通处理
+ 共通处理函数实现在 SGUI_Common.c 文件中,主要负责 SimpleGUI 的全
+ 局共通处理和 SimpleGUI 与外部的数据交互,函数名全部以 SGUI_Common
+ 开始。
+ 1.1.1 SGUI_Common_IntegerToStringWithDecimalPoint
+ 功能描述 :将一个有符号整数转化为字符串并在指定位置插入小数点。
+ 原型声明 :SGUI_SIZE SGUI_Common_IntegerToStringWithDecimalPoint
+ (SGUI_INT iInteger, SGUI_UINT uiDecimalPlaces, SGUI_PSZSTR
+ pszStringBuffer, SGUI_INT iAlignment, SGUI_CHAR cFillCharacter)
+ 参数说明 :
+ iInteger :将要被转换的数字。
+ uiDecimalPlaces :小数位数,如果为 0 则不插入小数点。
+ pszStringBuffer :转换输出字符串的输出缓存。
+ iAlignment :对其方式与宽度,单位为半角字符宽度,大于 0 则右对齐,
+ 小于 0 则左对齐。如果转换完的宽度大于对齐宽度,则以转换完的实际宽度为
+ 准。
+ cFillCharacter :若对其后还有留白位置,则以此字符填充,通常使用空
+ 格。
+ 返回值 :转换的字符串长度。
+ 注意事项 :请注意转换输出缓冲区的长度,如果发生内存越界,将产生不可预
+ 知的错误。
+ 1.1.2 SGUI_Common_IntegerToString
+ 功能描述 :将一个有符号整数转化为字符串。
+ 原型声明 :SGUI_SIZE SGUI_Common_IntegerToString
+ (SGUI_INT iInteger, SGUI_PSZSTR pszStringBuffer, SGUI_UINT uiBase,
+ SGUI_INT iAlignment, SGUI_CHAR cFillCharacter)
----------------------- Page 8-----------------------
- 参数说明 :
-
- iInteger :将要被转换的数字。
-
- pszStringBuffer :转换输出字符串的输出缓存。
-
- uiBase :转换基数 ,只允许 8、10 和 16 进制。
-
- iAlignment :对其方式与宽度 ,单位为半角字符宽度 ,大于 0 则右对齐 ,
-
- 小于 0 则左对齐。如果转换完的宽度大于对齐宽度 ,则以转换完的实际宽度为
-
- 准。
-
- cFillCharacter :若对其后还有留白位置 ,则以此字符填充 ,通常使用空
-
- 格。
-
- 返回值 :转换的字符串长度。
-
- 注意事项 :请注意转换输出缓冲区的长度 ,如果发生内存越界 ,将产生不可预
-
- 知的错误。
-
-1.1.3 SGUI_Common_ConvertStringToUnsignedInteger
-
- 功能描述 :将一个字符串的有效部分转换为一个无符号整数。
-
- 原型声明 :SGUI_UINT SGUI_Common_ConvertStringToUnsignedInteger
-
- (SGUI_PSZSTR szString, SGUI_CHAR** ppcEndPointer, SGUI_UINT
-
- uiBase)
-
- 参数说明 :
-
- szString :将要被转换的字符串。
-
- ppcEndPointer :转换结束处的字符指针 ,如果字符串中出现了非数字字
-
- 符 ,则会在该处终止 ,同时此指针指向该处 ,若转换至字符串尾 ,则该指针也
-
- 指向字符串尾的 NULL。
-
- uiBase :转换基数 ,只允许 8、10 和 16 进制。
-
- 返回值 :转换的数字。
-
- 注意事项 :若输入的字符串第一个字符即为非数字 ,则返回值为 0。
-
-1.1.4 SGUI_Common_ConvertStringToInteger
-
- 功能描述 :将一个字符串的有效部分转换为一个有符号整数。
-
- 原型声明 :SGUI_INT SGUI_Common_ConvertStringToInteger
-
- (SGUI_PSZSTR szString, SGUI_CHAR** ppcEndPointer, SGUI_UINT
-
- uiBase)
-
- 参数说明 :
-
- szString :将要被转换的字符串。
-
- ppcEndPointer :转换结束处的字符指针 ,如果字符串中出现了非数字字
-
- 符 ,则会在该处终止 ,同时此指针指向该处 ,若转换至字符串尾 ,则该指针也
-
- 指向字符串尾的 NULL。
-
- uiBase :转换基数 ,只允许 8、10 和 16 进制。
-
- 返回值 :转换的数字。
-
+ 参数说明 :
+ iInteger :将要被转换的数字。
+ pszStringBuffer :转换输出字符串的输出缓存。
+ uiBase :转换基数,只允许 8、10 和 16 进制。
+ iAlignment :对其方式与宽度,单位为半角字符宽度,大于 0 则右对齐,
+ 小于 0 则左对齐。如果转换完的宽度大于对齐宽度,则以转换完的实际宽度为
+ 准。
+ cFillCharacter :若对其后还有留白位置,则以此字符填充,通常使用空
+ 格。
+ 返回值 :转换的字符串长度。
+ 注意事项 :请注意转换输出缓冲区的长度,如果发生内存越界,将产生不可预
+ 知的错误。
+1.1.3 SGUI_Common_ConvertStringToUnsignedInteger
+ 功能描述 :将一个字符串的有效部分转换为一个无符号整数。
+ 原型声明 :SGUI_UINT SGUI_Common_ConvertStringToUnsignedInteger
+ (SGUI_PSZSTR szString, SGUI_CHAR** ppcEndPointer, SGUI_UINT
+ uiBase)
+ 参数说明 :
+ szString :将要被转换的字符串。
+ ppcEndPointer :转换结束处的字符指针,如果字符串中出现了非数字字
+ 符,则会在该处终止,同时此指针指向该处,若转换至字符串尾,则该指针也
+ 指向字符串尾的 NULL。
+ uiBase :转换基数,只允许 8、10 和 16 进制。
+ 返回值 :转换的数字。
+ 注意事项 :若输入的字符串第一个字符即为非数字,则返回值为 0。
+1.1.4 SGUI_Common_ConvertStringToInteger
+ 功能描述 :将一个字符串的有效部分转换为一个有符号整数。
+ 原型声明 :SGUI_INT SGUI_Common_ConvertStringToInteger
+ (SGUI_PSZSTR szString, SGUI_CHAR** ppcEndPointer, SGUI_UINT
+ uiBase)
+ 参数说明 :
+ szString :将要被转换的字符串。
+ ppcEndPointer :转换结束处的字符指针,如果字符串中出现了非数字字
+ 符,则会在该处终止,同时此指针指向该处,若转换至字符串尾,则该指针也
+ 指向字符串尾的 NULL。
+ uiBase :转换基数,只允许 8、10 和 16 进制。
+ 返回值 :转换的数字。
----------------------- Page 9-----------------------
- 注意事项 :若输入的字符串第一个字符即为非数字 ,则返回值为 0。
-
-1.1.5 SGUI_Common_EncodeConvert
-
- 功能描述 :字符串编码转换。
-
- 原型声明 :SGUI_PSZSTR SGUI_Common_EncodeConvert
-
- (SGUI_PCSZSTR szSourceEncode, SGUI_PSZSTR szDestinationEncode,
-
- SGUI_PSZSTR szSource)
-
- 参数说明 :
-
- szSourceEncode :源字符串编码。
-
- szDestinationEncode :目标编码。
-
- szSource :要转换的字符串。
-
- 返回值 :转换缓冲的指针。
-
- 注意事项 :此函数依赖 iconv 外部库 ,用于在模拟器环境中使用 UTF-8 编码格
-
- 式的字符串 ,由于示例的字符解码使用 GB2312 格式 ,故需要转码。由于转码
-
- 库体积庞大 ,所以通常情况下此函数不需要在目标单片机平台上实现 ,届时只
-
- 需要关闭_SIMPLE_GUI_ENABLE_ICONV_GB2312_宏定义即可。
-
-1.1.6 SGUI_Common_Allocate
-
- 功能描述 :申请堆内存空间。
-
- 原型声明 :SGUI_Common_Allocate(SGUI_SIZE uiSize)
-
- 参数说明 :
-
- uiSize :要申请的字节数。
-
- 返回值 :申请到的内存空间头指针。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 malloc 的重新封装 ,移植到
-
- 目标平台后如果想使用此函数 ,请确认平台支持或用户已自行实现 MMU 后 ,
-
- 重写此函数 ,并将宏_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_有效化。
-
-1.1.7 SGUI_Common_Free
-
- 功能描述 :释放堆内存空间。
-
- 原型声明 :SGUI_Common_Free(void* pFreePointer)
-
- 参数说明 :
-
- pFreePointer :要释放的内存头指针。
-
- 返回值 :无。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 free 的重新封装 ,移植到目
-
- 标平台后如果想使用此函数 ,请确认平台支持或用户已自行实现 MMU 后 ,重
-
- 写此函数 ,并将宏_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_有效化。
-
-1.1.8 SGUI_Common_MemoryCopy
-
- 功能描述 :复制内存块。
-
- 原型声明 :void* SGUI_Common_MemoryCopy
-
- (void* pDest, const void* pSrc, SGUI_UINT uiSize)
-
+ 注意事项 :若输入的字符串第一个字符即为非数字,则返回值为 0。
+1.1.5 SGUI_Common_EncodeConvert
+ 功能描述 :字符串编码转换。
+ 原型声明 :SGUI_PSZSTR SGUI_Common_EncodeConvert
+ (SGUI_PCSZSTR szSourceEncode, SGUI_PSZSTR szDestinationEncode,
+ SGUI_PSZSTR szSource)
+ 参数说明 :
+ szSourceEncode :源字符串编码。
+ szDestinationEncode :目标编码。
+ szSource :要转换的字符串。
+ 返回值 :转换缓冲的指针。
+ 注意事项 :此函数依赖 iconv 外部库,用于在模拟器环境中使用 UTF-8 编码格
+ 式的字符串,由于示例的字符解码使用 GB2312 格式,故需要转码。由于转码
+ 库体积庞大,所以通常情况下此函数不需要在目标单片机平台上实现,届时只
+ 需要关闭_SIMPLE_GUI_ENABLE_ICONV_GB2312_宏定义即可。
+1.1.6 SGUI_Common_Allocate
+ 功能描述 :申请堆内存空间。 原型声明 :SGUI_Common_Allocate(SGUI_SIZE uiSize) 参数说明 : uiSize :要申请的字节数。 返回值 :申请到的内存空间头指针。 注意事项 :模拟环境中,此环境是对 C 标准函数 malloc 的重新封装,移植到目标平台后如果想使用此函数,请确认平台支持或用户已自行实现 MMU 后,重写此函数,并将宏_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_有效化。
+1.1.7 SGUI_Common_Free 功能描述 :释放堆内存空间。 原型声明 :SGUI_Common_Free(void* pFreePointer) 参数说明 : pFreePointer :要释放的内存头指针。 返回值 :无。 注意事项 :模拟环境中,此环境是对 C 标准函数 free 的重新封装,移植到目标平台后如果想使用此函数,请确认平台支持或用户已自行实现MMU后,重写此函数,并将宏_SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_有效化。
+1.1.8 SGUI_Common_MemoryCopy
+ 功能描述 :复制内存块。
+ 原型声明 :void* SGUI_Common_MemoryCopy
+ (void* pDest, const void* pSrc, SGUI_UINT uiSize)
----------------------- Page 10-----------------------
- 参数说明 :
-
- pDest :目标内存块头指针。
-
- pSrc :源内存块头指针。
-
- uiSize :复制内存块的大小 ,单位字节。
-
- 返回值 :目标内存块头指针。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 memcpy 的重新封装 ,用户
-
- 如果不使用标准库 ,则需自行实现内存复制过程。
-
-1.1.9 SGUI_Common_MemorySet
-
- 功能描述 :设置内存块。
-
- 原型声明 :void SGUI_Common_MemorySet
-
- (void* pMemoryPtr, SGUI_BYTE iSetValue, SGUI_UINT uiSize)
-
- 参数说明 :
-
- pMemoryPtr :要设置的内存块头指针。
-
- iSetValue :要设置的每一个字节的值。
-
- uiSize :内存块的大小 ,单位字节。
-
- 返回值 :目标内存块头指针。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 memcpy 的重新封装 ,用户
-
- 如果不使用标准库 ,则需自行实现内存复制过程。
-
-1.1.10 SGUI_Common_StringLength
-
- 功能描述 :测量字符串的长度。
-
- 原型声明 :SGUI_SIZE SGUI_Common_StringLength
-
- (SGUI_PCSZSTR szString)
-
- 参数说明 :
-
- szString :字符串头指针。
-
- 返回值 :字符串长度。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 strlen 的重新封装 ,用户如果
-
- 不使用标准库 ,则需自行实现字符串长度计算的过程。
-
-1.1.11 SGUI_Common_StringCopy
-
- 功能描述 :复制字符串。
-
- 原型声明 :SGUI_PSZSTR SGUI_Common_StringCopy(SGUI_PSZSTR
-
- szDest, SGUI_PCSZSTR szSrc)
-
- 参数说明 :
-
- szDest :复制的字符串缓存。
-
- szSrc :被复制的字符串缓存。
-
- 返回值 :复制的字符串缓存头指针。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 strcpy 的重新封装 ,用户如
-
- 果不使用标准库 ,则需自行实现字符串复制的过程。
-
+ 参数说明 :
+ pDest :目标内存块头指针。
+ pSrc :源内存块头指针。
+ uiSize :复制内存块的大小,单位字节。
+ 返回值 :目标内存块头指针。
+ 注意事项 :模拟环境中,此环境是对 C 标准函数 memcpy 的重新封装,用户
+ 如果不使用标准库,则需自行实现内存复制过程。
+1.1.9 SGUI_Common_MemorySet
+ 功能描述 :设置内存块。
+ 原型声明 :void SGUI_Common_MemorySet
+ (void* pMemoryPtr, SGUI_BYTE iSetValue, SGUI_UINT uiSize)
+ 参数说明 :
+ pMemoryPtr :要设置的内存块头指针。
+ iSetValue :要设置的每一个字节的值。
+ uiSize :内存块的大小,单位字节。
+ 返回值 :目标内存块头指针。
+ 注意事项 :模拟环境中,此环境是对 C 标准函数 memcpy 的重新封装,用户
+ 如果不使用标准库,则需自行实现内存复制过程。
+1.1.10 SGUI_Common_StringLength
+ 功能描述 :测量字符串的长度。
+ 原型声明 :SGUI_SIZE SGUI_Common_StringLength
+ (SGUI_PCSZSTR szString)
+ 参数说明 :
+ szString :字符串头指针。
+ 返回值 :字符串长度。
+ 注意事项 :模拟环境中,此环境是对 C 标准函数 strlen 的重新封装,用户如果
+ 不使用标准库,则需自行实现字符串长度计算的过程。
+1.1.11 SGUI_Common_StringCopy
+ 功能描述 :复制字符串。
+ 原型声明 :SGUI_PSZSTR SGUI_Common_StringCopy(SGUI_PSZSTR
+ szDest, SGUI_PCSZSTR szSrc)
+ 参数说明 :
+ szDest :复制的字符串缓存。
+ szSrc :被复制的字符串缓存。
+ 返回值 :复制的字符串缓存头指针。
+ 注意事项 :模拟环境中,此环境是对 C 标准函数 strcpy 的重新封装,用户如
+ 果不使用标准库,则需自行实现字符串复制的过程。
----------------------- Page 11-----------------------
-1.1.12 SGUI_Common_StringLengthCopy
-
- 功能描述 :复制不超过特定长度的字符串。
-
- 原型声明 :SGUI_PSZSTR SGUI_Common_StringLengthCopy
-
- (SGUI_PSZSTR szDest, SGUI_PCSZSTR szSrc, SGUI_SIZE uiSize)
-
- 参数说明 :
-
- szDest :复制的字符串缓存。
-
- szSrc :被复制的字符串缓存。
-
- uiSize :复制字符串的长度 ,单位为字节。
-
- 返回值 :复制的字符串缓存头指针。
-
- 注意事项 :模拟环境中 ,此环境是对 C 标准函数 strncpy 的重新封装 ,用户如
-
- 果不使用标准库 ,则需自行实现字符串复制的过程。
-
-1.1.13 SGUI_Common_GetNowTime
-
- 功能描述 :获取当前特定系统时间。
-
- 原型声明 :void SGUI_Common_GetNowTime
-
- (SGUI_TIME* pstTime)
-
- 参数说明 :
-
- pstTime :保存时间数据的结构体。
-
- 返回值 :复制的字符串缓存头指针。
-
- 注意事项 :此函数需绑定系统 RTC 的处理 ,需要用户更具目标平台自行实现 ,
-
- 读取 RTC 时间并赋值到参数指定的 RTC 结构体中。
-
-1.1.14 SGUI_Common_RefreshScreen
-
- 功能描述 :刷新屏幕显示。
-
- 原型声明 :void SGUI_Common_RefreshScreen(void)
-
- 参数说明 :无。
-
- 返回值 :无。
-
- 注意事项 :用于更新屏幕显示的接口 ,需要用户自行实现 ,通常用于使用了显
-
- 示缓存的情况下。
-
-1.1.15 SGUI_Common_ReadFlashROM
-
- 功能描述 :读取外部存储中的数据。
-
- 原型声明 :void SGUI_Common_ReadFlashROM(SGUI_ROM_ADDRESS
-
- uiAddressHead, SGUI_SIZE uiDataLength, SGUI_BYTE* pBuffer)
-
- 参数说明 :
-
- uiAddressHead :读取的首地址。
-
- uiDataLength :读取数据的长度。
-
- pBuffer :存放读取数据的缓冲区的首地址。
-
- 返回值 :无。
-
+1.1.12 SGUI_Common_StringLengthCopy
+ 功能描述 :复制不超过特定长度的字符串。
+ 原型声明 :SGUI_PSZSTR SGUI_Common_StringLengthCopy
+ (SGUI_PSZSTR szDest, SGUI_PCSZSTR szSrc, SGUI_SIZE uiSize)
+ 参数说明 :
+ szDest :复制的字符串缓存。
+ szSrc :被复制的字符串缓存。
+ uiSize :复制字符串的长度,单位为字节。
+ 返回值 :复制的字符串缓存头指针。
+ 注意事项 :模拟环境中,此环境是对 C 标准函数 strncpy 的重新封装,用户如
+ 果不使用标准库,则需自行实现字符串复制的过程。
+1.1.13 SGUI_Common_GetNowTime
+ 功能描述 :获取当前特定系统时间。
+ 原型声明 :void SGUI_Common_GetNowTime
+ (SGUI_TIME* pstTime)
+ 参数说明 :
+ pstTime :保存时间数据的结构体。
+ 返回值 :复制的字符串缓存头指针。
+ 注意事项 :此函数需绑定系统 RTC 的处理,需要用户更具目标平台自行实现,
+ 读取 RTC 时间并赋值到参数指定的 RTC 结构体中。
+1.1.14 SGUI_Common_RefreshScreen
+ 功能描述 :刷新屏幕显示。
+ 原型声明 :void SGUI_Common_RefreshScreen(void)
+ 参数说明 :无。
+ 返回值 :无。
+ 注意事项 :用于更新屏幕显示的接口,需要用户自行实现,通常用于使用了显
+ 示缓存的情况下。
+1.1.15 SGUI_Common_ReadFlashROM
+ 功能描述 :读取外部存储中的数据。
+ 原型声明 :void SGUI_Common_ReadFlashROM(SGUI_ROM_ADDRESS
+ uiAddressHead, SGUI_SIZE uiDataLength, SGUI_BYTE* pBuffer)
+ 参数说明 :
+ uiAddressHead :读取的首地址。
+ uiDataLength :读取数据的长度。
+ pBuffer :存放读取数据的缓冲区的首地址。
+ 返回值 :无。
----------------------- Page 12-----------------------
- 注意事项 :此函数需根据实际系统平台 ,实现从内部或外部 Flash 中读取数据
-
- 的操作。在 SimpleGUI 中 ,此函数通常用于读取字模、图片或图标数据等。
-
- 1.1.16 SGUI_Common_Delay
-
- 功能描述 :延时等待。
-
- 原型声明 :void SGUI_Common_Delay(SGUI_UINT32 uiTimeMs)
-
- 参数说明 :
-
- uiTimeMs :等待的毫秒数。
-
- 返回值 :无。
-
- 注意事项 :根据实际系统平台实现的延时函数 ,用于 HMI 引擎中 ,绘图引擎
-
- 不使用此函数。
-
-1.2 坐标系定义
-
- 在 SimpleGUI 的绘图操作中 ,以屏幕有效显示区域的左上角为坐标原
-
- 点 ,X 轴向右为正方向 ,Y 轴向下为正方向 ,起始坐标为(0,0) ,以屏幕像素为
-
- 单位向正方向增长。
-
-1.3 基础绘图
-
- 基础绘图函数的实现位于 SGUI_Basic.c 文件中 ,主要负责 SimpleGUI 中
-
- 点、线、面和位图等基本图形的绘制功能 ,函数名全部以 SGUI_Basic 开始。
-
- 1.3.1 数据类型定义
-
- 为方便基础绘图 API 的实现与使用 ,SimpleGUI 在此部分定义了两种数据
-
- 类型分别用于像素点颜色的说明和绘图方式的说明。
-
- 像素点颜色类型为 SGUI_COLOR ,其原型定义如下 :
-
- typedef enum
- {
- SGUI_COLOR_BKGCLR = 0,
- SGUI_COLOR_FRGCLR = 1,
- SGUI_COLOR_TRANS = 2,
- }SGUI_COLOR;
-
- SGUI_COLOR_BKGCLR 为背景色 ,通常指显示屏幕上未被点亮 (或未被
-
- 有效化 )的点的颜色。
-
- SGUI_COLOR_FRGCLR 为前景色 ,通常指显示屏幕上被点亮 (或被有效
-
- 化 )的点的颜色。
-
- SGUI_COLOR_TRANS 为透明。指忽略当前点的绘制 ,保持当前点 (或区
-
- 域 )的显示状态不变。
-
- 绘图模式型为 SGUI_DRAW_MODE ,其原型定义如下 :
-
- typedef enum
- {
- SGUI_DRAW_NORMAL = 0,
- SGUI_DRAW_REVERSE = 1,
- }SGUI_DRAW_MODE;
-
+ 注意事项 :此函数需根据实际系统平台,实现从内部或外部 Flash 中读取数据
+ 的操作。在 SimpleGUI 中,此函数通常用于读取字模、图片或图标数据等。
+ 1.1.16 SGUI_Common_Delay
+ 功能描述 :延时等待。
+ 原型声明 :void SGUI_Common_Delay(SGUI_UINT32 uiTimeMs)
+ 参数说明 :
+ uiTimeMs :等待的毫秒数。
+ 返回值 :无。
+ 注意事项 :根据实际系统平台实现的延时函数,用于 HMI 引擎中,绘图引擎
+ 不使用此函数。
+1.2 坐标系定义
+ 在 SimpleGUI 的绘图操作中,以屏幕有效显示区域的左上角为坐标原
+ 点,X 轴向右为正方向,Y 轴向下为正方向,起始坐标为(0,0),以屏幕像素为
+ 单位向正方向增长。
+1.3 基础绘图
+ 基础绘图函数的实现位于 SGUI_Basic.c 文件中,主要负责 SimpleGUI 中
+ 点、线、面和位图等基本图形的绘制功能,函数名全部以 SGUI_Basic 开始。
+ 1.3.1 数据类型定义
+ 为方便基础绘图 API 的实现与使用,SimpleGUI 在此部分定义了两种数据
+ 类型分别用于像素点颜色的说明和绘图方式的说明。
+ 像素点颜色类型为 SGUI_COLOR,其原型定义如下 :
+ typedef enum { SGUI_COLOR_BKGCLR = 0, SGUI_COLOR_FRGCLR = 1, SGUI_COLOR_TRANS = 2, }SGUI_COLOR;
+ SGUI_COLOR_BKGCLR 为背景色,通常指显示屏幕上未被点亮 (或未被
+ 有效化 )的点的颜色。
+ SGUI_COLOR_FRGCLR 为前景色,通常指显示屏幕上被点亮 (或被有效
+ 化 )的点的颜色。
+ SGUI_COLOR_TRANS 为透明。指忽略当前点的绘制,保持当前点 (或区
+ 域 )的显示状态不变。
+ 绘图模式型为 SGUI_DRAW_MODE,其原型定义如下 :
+ typedef enum { SGUI_DRAW_NORMAL = 0, SGUI_DRAW_REVERSE = 1, }SGUI_DRAW_MODE;
----------------------- Page 13-----------------------
- SGUI_DRAW_NORMAL 为正常绘制 ,指根据上述 SGUI_COLOR 类型中
-
- 对点颜色的定义进行绘制。
-
- SGUI_DRAW_REVERSE 为反色绘制 ,指在绘制是将上述 SGUI_COLOR
-
- 类型中的 SGUI_COLOR_BKGCLR 与 SGUI_COLOR_FRGCLR 两种定义互换 ,
-
- 绘制反色图形 ,此定义通常用于绘制反色位图。
-
-1.3.2 SGUI_Basic_ClearScreen
-
- 功能描述 :清空屏幕显示。
-
- 原型声明 :void SGUI_Basic_ClearScreen(void)
-
- 参数说明 :无。
-
- 返回值 :无。
-
- 注意事项 :因需要适配的硬件平台不同 ,有的屏幕设备支持清空操作 ,有的则
-
- 必须手动填充 ,所以此函数需要用户根据实际使用的设备自行实现。
-
-1.3.3 SGUI_Basic_DrawPoint
-
- 功能描述 :在屏幕上绘制点。
-
- 原型声明 :void SGUI_Basic_DrawPoint(SGUI_UINT uiPosX, SGUI_UINT
-
- uiPosY, SGUI_COLOR eColor)
-
- 参数说明 :
-
- uiPosX :要绘制点的 X 坐标。
-
- uiPosY :要绘制点的 Y 坐标。
-
- eColor :绘制点的颜色。
-
- 返回值 :无。
-
- 注意事项 :SimpleGUI 只针对单色屏幕设计 ,绘制点的颜色只有“黑”和“白”两
-
- 种 ,分别对应像素的设置状态和清空状态 ,详情请参考
-
- SGUI_COLOR_BKGCLR 数据类型的定义。
-
-1.3.4 SGUI_Basic_DrawLine
-
- 功能描述 :在屏幕上绘制直线段。
-
- 原型声明 :void SGUI_Basic_DrawLine
-
- (SGUI_INT uiStartX, SGUI_INT uiStartY, SGUI_INT uiEndX, SGUI_INT
-
- uiEndY, SGUI_COLOR eColor)
-
- 参数说明 :
-
- uiStartX :线段起始点的 X 坐标。
-
- uiStartY :线段起始点的 Y 坐标。
-
- uiStartX :线段终止点的 X 坐标。
-
- uiStartY :线段终止点的 Y 坐标。
-
- eColor :绘制线段的颜色。
-
- 返回值 :无。
-
+ SGUI_DRAW_NORMAL 为正常绘制,指根据上述 SGUI_COLOR 类型中
+ 对点颜色的定义进行绘制。
+ SGUI_DRAW_REVERSE 为反色绘制,指在绘制是将上述 SGUI_COLOR
+ 类型中的 SGUI_COLOR_BKGCLR 与 SGUI_COLOR_FRGCLR 两种定义互换,
+ 绘制反色图形,此定义通常用于绘制反色位图。
+1.3.2 SGUI_Basic_ClearScreen
+ 功能描述 :清空屏幕显示。
+ 原型声明 :void SGUI_Basic_ClearScreen(void)
+ 参数说明 :无。
+ 返回值 :无。
+ 注意事项 :因需要适配的硬件平台不同,有的屏幕设备支持清空操作,有的则
+ 必须手动填充,所以此函数需要用户根据实际使用的设备自行实现。
+1.3.3 SGUI_Basic_DrawPoint
+ 功能描述 :在屏幕上绘制点。
+ 原型声明 :void SGUI_Basic_DrawPoint(SGUI_UINT uiPosX, SGUI_UINT
+ uiPosY, SGUI_COLOR eColor)
+ 参数说明 :
+ uiPosX :要绘制点的 X 坐标。
+ uiPosY :要绘制点的 Y 坐标。
+ eColor :绘制点的颜色。
+ 返回值 :无。
+ 注意事项 :SimpleGUI 只针对单色屏幕设计,绘制点的颜色只有“黑”和“白”两
+ 种,分别对应像素的设置状态和清空状态,详情请参考
+ SGUI_COLOR_BKGCLR 数据类型的定义。
+1.3.4 SGUI_Basic_DrawLine
+ 功能描述 :在屏幕上绘制直线段。
+ 原型声明 :void SGUI_Basic_DrawLine
+ (SGUI_INT uiStartX, SGUI_INT uiStartY, SGUI_INT uiEndX, SGUI_INT
+ uiEndY, SGUI_COLOR eColor)
+ 参数说明 :
+ uiStartX :线段起始点的 X 坐标。
+ uiStartY :线段起始点的 Y 坐标。
+ uiStartX :线段终止点的 X 坐标。
+ uiStartY :线段终止点的 Y 坐标。
+ eColor :绘制线段的颜色。
+ 返回值 :无。
----------------------- Page 14-----------------------
- 注意事项 :线段起止点的坐标值可以为负值 ,当为负值时意为坐标位于屏幕显
-
- 示区域上侧或左侧以外的区域。超出屏幕显示区域部分的线段将不会被绘制。
-
-1.3.5 SGUI_Basic_DrawRectangle
-
- 功能描述 :在屏幕上绘制封闭矩形。
-
- 原型声明 :void SGUI_Basic_DrawRectangle
-
- (SGUI_UINT uiStartX, SGUI_UINT uiStartY, SGUI_UINT uiWidth,
-
- SGUI_UINT uiHeight, SGUI_COLOR eEdgeColor, SGUI_COLOR eFillColor)
-
- 参数说明 :
-
- uiStartX :矩形左上角点的 X 坐标。
-
- uiStartY :矩形左上角点的 Y 坐标。
-
- uiWidth :矩形的宽度 ,以像素为单位。
-
- uiStartY :矩形的高度 ,以像素为单位。
-
- eEdgeColor :矩形边框的颜色。
-
- eFillColor :矩形内部的填充颜色。
-
- 返回值 :无。
-
- 注意事项 :如果只需要绘制矩形边框 ,不希望矩形内部被填充 ,则 eFillColor
-
- 参数传入 SGUI_COLOR_TRANS 即可。超出屏幕显示区域的部分将不会被绘
-
- 制。
-
-1.3.6 SGUI_Basic_DrawCircle
-
- 功能描述 :在屏幕上绘制封闭圆形。
-
- 原型声明 :void SGUI_Basic_DrawCircle(SGUI_UINT uiCx, SGUI_UINT
-
- uiCy, SGUI_UINT uiRadius, SGUI_COLOR eEdgeColor, SGUI_COLOR
-
- eFillColor)
-
- 参数说明 :
-
- uiCx :圆形圆心的 X 坐标。
-
- uiCy :圆形圆心的 Y 坐标。
-
- uiRadius :圆的半径 ,以像素为单位。
-
- eEdgeColor :圆的边框的颜色。
-
- eFillColor :圆的内部的填充颜色。
-
- 返回值 :无。
-
- 注意事项 :如果只需要绘制圆形边框 ,不希望矩形内部被填充 ,则 eFillColor
-
- 参数传入 SGUI_COLOR_TRANS 即可。
-
-1.3.7 SGUI_Basic_ReverseBlockColor
-
- 功能描述 :反色矩形区域。
-
- 原型声明 :void SGUI_Basic_ReverseBlockColor(SGUI_UINT uiStartX,
-
- SGUI_UINT uiStartY, SGUI_UINT uiWidth, SGUI_UINT uiHeight)
-
- 参数说明 :
-
------------------------ Page 15-----------------------
-
- uiStartX :矩形左上角点的 X 坐标。
-
- uiStartY :矩形左上角点的 Y 坐标。
-
- uiWidth :矩形的宽度 ,以像素为单位。
-
- uiStartY :矩形的高度 ,以像素为单位。
-
- 返回值 :无。
-
- 注意事项 :无。
-
- 1.3.8 SGUI_Basic_DrawBitMap
-
- 功能描述 :绘制位图。
-
- 原型声明 :void SGUI_Basic_DrawBitMap(SGUI_RECT_AREA*
-
- pstDisplayArea, SGUI_RECT_AREA* pstDataArea, SGUI_BYTE*
-
- pDataBuffer, SGUI_DRAW_MODE eDrawMode)
-
- 参数说明 :
-
- pstDisplayArea :指定位图的显示区域。
-
- pstDataArea :位图大小以及显示的偏移量 ,以像素为单位。
-
- pDataBuffer :位图数据。
-
- eDrawMode :绘制方式 (正常或反色 )。
-
- 返回值 :无。
-
- 注意事项 :传入参数中 pstDisplayArea 指向的数据为显示位图的矩形区域 ,
-
- 超出区域的部分将不被显示 ,pstDataArea 指向的数据标明了位图的实际大小
-
- 以及在显示区域内的偏移量 ,具体逻辑关系如下图所示 :
-
- 图中红色代表位图的实际尺寸 ,蓝色代表指定的显示区域尺寸 ,则实际显
-
- 示时 ,只有蓝色区域的中的位图被显示出来。
-
-1.4 文字显示
-
-1.5 消息框
-
-1.6 输入框
-
-1.7 进度条
-
-1.8 滚动条
-
------------------------ Page 16-----------------------
-
- 1.9 列表框
-
- 1.10 实时曲线
-
- 2. HMI 引擎
+ 注意事项 :线段起止点的坐标值可以为负值,当为负值时意为坐标位于屏幕显
+ 示区域上侧或左侧以外的区域。超出屏幕显示区域部分的线段将不会被绘制。
+1.3.5 SGUI_Basic_DrawRectangle
+ 功能描述 :在屏幕上绘制封闭矩形。
+ 原型声明 :void SGUI_Basic_DrawRectangle
+ (SGUI_UINT uiStartX, SGUI_UINT uiStartY, SGUI_UINT uiWidth,
+ SGUI_UINT uiHeight, SGUI_COLOR eEdgeColor, SGUI_COLOR eFillColor)
+ 参数说明 :
+ uiStartX :矩形左上角点的 X 坐标。
+ uiStartY :矩形左上角点的 Y 坐标。
+ uiWidth :矩形的宽度,以像素为单位。
+ uiStartY :矩形的高度,以像素为单位。
+ eEdgeColor :矩形边框的颜色。
+ eFillColor :矩形内部的填充颜色。
+ 返回值 :无。
+ 注意事项 :如果只需要绘制矩形边框,不希望矩形内部被填充,则 eFillColor
+ 参数传入 SGUI_COLOR_TRANS 即可。超出屏幕显示区域的部分将不会被绘
+ 制。
+1.3.6 SGUI_Basic_DrawCircle
+ 功能描述 :在屏幕上绘制封闭圆形。
+ 原型声明 :void SGUI_Basic_DrawCircle(SGUI_UINT uiCx, SGUI_UINT
+ uiCy, SGUI_UINT uiRadius, SGUI_COLOR eEdgeColor, SGUI_COLOR
+ eFillColor)
+ 参数说明 :
+ uiCx :圆形圆心的 X 坐标。
+ uiCy :圆形圆心的 Y 坐标。
+ uiRadius :圆的半径,以像素为单位。
+ eEdgeColor :圆的边框的颜色。
+ eFillColor :圆的内部的填充颜色。
+ 返回值 :无。
+ 注意事项 :如果只需要绘制圆形边框,不希望矩形内部被填充,则 eFillColor
+ 参数传入 SGUI_COLOR_TRANS 即可。
+1.3.7 SGUI_Basic_ReverseBlockColor
+ 功能描述 :反色矩形区域。 原型声明 :void SGUI_Basic_ReverseBlockColor(SGUI_UINT uiStartX, SGUI_UINT uiStartY, SGUI_UINT uiWidth, SGUI_UINT uiHeight)
+ 参数说明 : uiStartX :矩形左上角点的 X 坐标。 uiStartY :矩形左上角点的 Y 坐标。 uiWidth :矩形的宽度,以像素为单位。 uiStartY :矩形的高度,以像素为单位。 返回值 :无。
+ 注意事项 :无。
+ 1.3.8 SGUI_Basic_DrawBitMap
+ 功能描述 :绘制位图。
+ 原型声明 :void SGUI_Basic_DrawBitMap(SGUI_RECT_AREA*
+ pstDisplayArea, SGUI_RECT_AREA* pstDataArea, SGUI_BYTE*
+ pDataBuffer, SGUI_DRAW_MODE eDrawMode)
+ 参数说明 :
+ pstDisplayArea :指定位图的显示区域。
+ pstDataArea :位图大小以及显示的偏移量,以像素为单位。
+ pDataBuffer :位图数据。
+ eDrawMode :绘制方式 (正常或反色 )。
+ 返回值 :无。
+ 注意事项 :传入参数中 pstDisplayArea 指向的数据为显示位图的矩形区域,
+ 超出区域的部分将不被显示,pstDataArea 指向的数据标明了位图的实际大小
+ 以及在显示区域内的偏移量,具体逻辑关系如下图所示 : 图中红色代表位图的实际尺寸,蓝色代表指定的显示区域尺寸,则实际显示时,只有蓝色区域的中的位图被显示出来。
+1.4 文字显示1.5 消息框1.6 输入框1.7 进度条1.8 滚动条1.9 列表框1.10 实时曲线 2. HMI 引擎
\ No newline at end of file
diff --git a/Documents/VirtualSDK user manual.md b/Documents/VirtualSDK user manual.md
index e2dc830..4173d46 100644
--- a/Documents/VirtualSDK user manual.md
+++ b/Documents/VirtualSDK user manual.md
@@ -41,9 +41,9 @@ SimpleGUI Virtual SDK 使用说明
│ ├─ [DIR]
│ └─ *.h
└─ lib
- ├─ gcc_dll
- ├─ mswu
- └─ *.a(库文件)
+ └─ gcc_x86_dll(如果使用64位编译器,此文件夹名应为gcc_x64_dll)
+ ├─ mswu
+ └─ *.a(库文件)
```
diff --git a/GUI/inc/SGUI_Interface.h b/GUI/inc/SGUI_Interface.h
index f18509c..c55d522 100644
--- a/GUI/inc/SGUI_Interface.h
+++ b/GUI/inc/SGUI_Interface.h
@@ -48,6 +48,5 @@ void SGUI_SystemIF_MemorySet(SGUI_PTR pMemoryPtr, SGUI_BYTE i
SGUI_SIZE SGUI_SystemIF_StringLength(SGUI_CSZSTR szString);
SGUI_SZSTR SGUI_SystemIF_StringCopy(SGUI_SZSTR szDest, SGUI_CSZSTR szSrc);
SGUI_SZSTR SGUI_SystemIF_StringLengthCopy(SGUI_SZSTR szDest, SGUI_CSZSTR szSrc, SGUI_SIZE sSize);
-void SGUI_SystemIF_GetNowTime(SGUI_TIME* pstTime);
#endif // __INCLUDED_SGUI_INTERFACE_H__
diff --git a/GUI/inc/SGUI_Typedef.h b/GUI/inc/SGUI_Typedef.h
index 38e017b..aa813fa 100644
--- a/GUI/inc/SGUI_Typedef.h
+++ b/GUI/inc/SGUI_Typedef.h
@@ -81,16 +81,6 @@ typedef struct
SGUI_INT iMax;
}SGUI_RANGE;
-typedef struct
-{
- SGUI_UINT16 Year;
- SGUI_UINT16 Month;
- SGUI_UINT16 Day;
- SGUI_UINT16 Hour;
- SGUI_UINT16 Minute;
- SGUI_UINT16 Second;
-}SGUI_TIME;
-
typedef enum
{
SGUI_COLOR_BKGCLR = 0,
diff --git a/GUI/src/SGUI_Interface.c b/GUI/src/SGUI_Interface.c
index a194f83..2750730 100644
--- a/GUI/src/SGUI_Interface.c
+++ b/GUI/src/SGUI_Interface.c
@@ -98,77 +98,6 @@ SGUI_SZSTR SGUI_SystemIF_EncodeConvert(SGUI_CSZSTR szSourceEncode, SGUI_SZSTR sz
}
#endif
-/*************************************************************************/
-/** Function Name: SGUI_SystemIF_GetNowTime **/
-/** Purpose: Get system now time. **/
-/** Resources: System RTC interface. **/
-/** Params: **/
-/** @ pstTime[out]: RTC time data structure pointer. **/
-/** Return: None. **/
-/** Notice: user need to override this function according to **/
-/** the platform used. **/
-/*************************************************************************/
-void SGUI_SystemIF_GetNowTime(SGUI_TIME* pstTime)
-{
- /*----------------------------------*/
- /* Variable Declaration */
- /*----------------------------------*/
-#ifdef _SIMPLE_GUI_USE_SYS_PF_FUNCTIONS_
- time_t rawtime;
- struct tm* timeinfo;
-#else
-#ifdef _SIMPLE_GUI_IN_VIRTUAL_SDK_
- time_t rawtime;
- struct tm* timeinfo;
-#else
- // Add date structure variable declare here.
-#endif
-#endif
- /*----------------------------------*/
- /* Process */
- /*----------------------------------*/
- if(NULL != pstTime)
- {
-#ifdef _SIMPLE_GUI_USE_SYS_PF_FUNCTIONS_
- // Add RTC Interface call of the platform.
- time(&rawtime);
- timeinfo = localtime(&rawtime);
- if(NULL != timeinfo)
- {
- pstTime->Year = timeinfo->tm_year+1900;
- pstTime->Month = timeinfo->tm_mon+1;
- pstTime->Day = timeinfo->tm_mday;
- pstTime->Hour = timeinfo->tm_hour;
- pstTime->Minute = timeinfo->tm_min;
- pstTime->Second = timeinfo->tm_sec;
- }
-#else
- // Add RTC Interface call of the platform.
-#ifdef _SIMPLE_GUI_IN_VIRTUAL_SDK_
- time(&rawtime);
- timeinfo = localtime(&rawtime);
- if(NULL != timeinfo)
- {
- pstTime->Year = timeinfo->tm_year+1900;
- pstTime->Month = timeinfo->tm_mon+1;
- pstTime->Day = timeinfo->tm_mday;
- pstTime->Hour = timeinfo->tm_hour;
- pstTime->Minute = timeinfo->tm_min;
- pstTime->Second = timeinfo->tm_sec;
- }
-#else
- pstTime->Year = g_stCleandar.tm_year;
- pstTime->Month = g_stCleandar.tm_mon;
- pstTime->Day = g_stCleandar.tm_mday;
- pstTime->Hour = g_stCleandar.tm_hour;
- pstTime->Minute = g_stCleandar.tm_min;
- pstTime->Second = g_stCleandar.tm_sec;
-#endif
-
-#endif
- }
-}
-
/*************************************************************************/
/** Function Name: SGUI_SystemIF_StringLengthCopy **/
/** Purpose: Copy string. **/
diff --git a/VirtualSDK/Project/CodeBlocks/VirtualSDK_wx31.cbp b/VirtualSDK/Project/CodeBlocks/VirtualSDK_wx31.cbp
index fc60520..b3ca643 100644
--- a/VirtualSDK/Project/CodeBlocks/VirtualSDK_wx31.cbp
+++ b/VirtualSDK/Project/CodeBlocks/VirtualSDK_wx31.cbp
@@ -97,10 +97,10 @@
-
+
-
+
@@ -121,6 +121,9 @@
+
+
+