#ifndef SOURCE_DISPLAY_H_ #define SOURCE_DISPLAY_H_ #define ZONE6_DAT *(volatile Uint16*)0x00100001 #define ZONE6_COM *(volatile Uint16*)0x00100000 #define OLED_WIDTH (128U) // ER-OLEDM024 Vertical Pixel 0~127 #define OLED_HEIGHT (64U) #define OLED_PAGE (8U) // ER-OLEDM024 Page 0~7 #define TXT_ENG_WIDTH (6U) #define TXT_ENG_HEIGHT (12U) #define TXT_TYPE_ENG (0U) #define TXT_TYPE_ETC (1U) #define TXT_MAX_LEN (22U) #define TXT_LINE_LEN (5U) #define OLED_LOAD_PROGRESS_X (14U) #define OLED_LOAD_PROGRESS_Y (52U) #define OLED_LOAD_PROGRESS_W (114U) #define OLED_LOAD_PROGRESS_H (10U) #define MODE_COMMAND (0U) #define MODE_DATA (1U) #define DIR_UP (1U) #define DIR_DOWN (0U) enum { OLED_LINE_TITLE = 0U, OLED_LINE_1 = 14U, OLED_LINE_2 = 27U, OLED_LINE_3 = 40U, OLED_LINE_4 = 53U }; enum { OLED_ROW_0 = 0U, OLED_ROW_1, OLED_ROW_2, OLED_ROW_3, OLED_ROW_4 }; enum { OLED_PASS_DIGIT_1 = 0U, OLED_PASS_DIGIT_2, OLED_PASS_DIGIT_3, OLED_PASS_DIGIT_4 }; typedef enum { OLED_PAGE_APU1 = 0U, // 0 OLED_PAGE_APU2, // 1 OLED_PAGE_MENU1, // 2 OLED_PAGE_MENU2, // 3 OLED_PAGE_TEMP, // 4 OLED_PAGE_SENSOR1, // 5 OLED_PAGE_SENSOR2, // 6 OLED_PAGE_SENSOR3, // 7 OLED_PAGE_SENSOR4, // 8 OLED_PAGE_WARNING1, // 9 OLED_PAGE_WARNING2, // 10 OLED_PAGE_FAULT1, // 11 OLED_PAGE_FAULT2, // 12 OLED_PAGE_FAULT3, // 13 OLED_PAGE_FAULT4, // 14 OLED_PAGE_FAULT5, // 15 OLED_PAGE_FAULT6, // 16 OLED_PAGE_RESET_ALARM, // 17 OLED_PAGE_PASSWORD, // 18 OLED_PAGE_MAINTENENCE, // 19 OLED_PAGE_KEY_TEST, // 20 OLED_PAGE_SHUTDOWN, // 21 OLED_PAGE_MAX } EOledPage; enum { OLED_MENU_APU = 0U, // 0 OLED_MENU_TEMP, // 1 OLED_MENU_SENSOR, // 2 OLED_MENU_WARNING, // 3 OLED_MENU_FAULT = 0U, // 0 OLED_MENU_RESET, // 1 OLED_MENU_DEBUG // 2 }; enum { OLED_LINE_FOCUS_1 = 0U, OLED_LINE_FOCUS_2, OLED_LINE_FOCUS_3, OLED_LINE_FOCUS_4 }; typedef struct ClassPageHandler { Uint16 uiPage; void (*pAction) (void); // PageTable ÂüÁ¶ } CPageHandler; typedef struct ClassOledOperValue { Uint16 uiBuff[OLED_WIDTH][OLED_PAGE]; Uint16 uiPageNum; Uint16 uiOldPageNum; Uint16 uiFocusLine; Uint16 uiPrevFocusLine; Uint16 uiFocusDigit; Uint16 uiProgressValue; Uint16 uiProgressDone; Uint16 uiAlarmPopCheck; Uint16 uiAlreadyAlarm; Uint16 uiPrevAlarmPage; Uint16 uiResetAnswer; int8 cStrBuff[TXT_LINE_LEN][TXT_MAX_LEN]; int8 cAlignBuffer[TXT_MAX_LEN]; struct { Uint16 TxtColor; Uint16 BgColor; } Color; struct { Uint16 X1; Uint16 Y1; Uint16 X2; Uint16 Y2; } Point; } COledOperValue; void CInitXintf(void); void CInitOled(void); void COledReflash(Uint16 x, Uint16 y, Uint16 width, Uint16 height); void CDisplayPostFail(void); void CSetPage(Uint16 PageNum); void CInitKeyOperValue(void); void CInitializePage(void); void COledBufferReset(void); extern COledOperValue OledOperValue; #endif /* SOURCE_DISPLAY_H_ */