?? menu.c
字號(hào):
//menu.c
/**========================================================================**
***本c文件以"..\c1335_public\subMenu.h"為基礎(chǔ),顯示一級(jí)、二級(jí)菜單。
***供main.c調(diào)用。
***文件層次:main.c <- menu.c --| <- subMenu.c
*** | <- c1335_driver.c
*** | <- DeviceAction.c
***=========================================================================*/
#include "config.h"
#include "c1335_driver.h"
#include "subMenu.h"
#include "DeviceAction.h"
#include "IIC24c02.h"
#define MAIN_MENU_ROW_WIDTH (unsigned char)18
extern unsigned char KeyScan(void);
extern unsigned char g_ucLanguageIndex;
//#define MAIN_MENU_MAX_NUM 8
#define MAIN_MENU_X0 10
#define MAIN_MENU_Y0 32
#define MAIN_MENU_WIDTH 20
BOOL MainMenu(unsigned char *pSubMenu)
{
ClearLCD(0x28,2, 10,36,200);
//DispASCIIStr("MENU",14,10,0);
//DispASCIIStr(CommonTip[TIP_MENU_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],14,10,0);
DispSubMenuContent(MainMenuString,
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2,
MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
DispSubMenuNum(*pSubMenu,
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2,
MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
KeyNote();
while(1)
{
g_ucKeyData = 0;
if(!SleepAndQueryMsg(1000)) //KeyScan();
{
switch(g_ucKeyData)
{
case KEY_UP:
if(*pSubMenu == 1)
*pSubMenu = MAIN_MENU_MAX_NUM;
else
(*pSubMenu)--;
DispSubMenuNum(*pSubMenu,MAIN_MENU_MAX_NUM,
MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
break;
case KEY_DOWN:
if(*pSubMenu == MAIN_MENU_MAX_NUM)
*pSubMenu = 1;
else
(*pSubMenu)++;
DispSubMenuNum(*pSubMenu,MAIN_MENU_MAX_NUM,
MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
break;
case KEY_OK:
return TRUE;
}
}
}
return TRUE;
}
//MAIN_MENU_MAX_NUM = sizeof(MainMenuString)/sizeof(MainMenuString[0])/2
BOOL LeakCheckMenu(void)
{
ClearLCD(0x28,6, 10,20,200);
DispASCIIStr(MainMenuString[LAYER1_LEAK_CHECK-1+
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
14,10,0); //DispASCIIStr("LEAK CHECK",14,10,0);
VerLine(0x80, 11, 72, 32);
VerLine(0x80, 20, 80, 16);
VerLine(0x80, 22, 72, 32);
HorLine(0xff, 11, 72, 4);
HorLine(0xff, 11, 104, 4);
HorLine(0xff, 20, 80, 2);
HorLine(0xff, 20, 96, 2);
HorLine(0xff, 22, 72, 5);
HorLine(0xff, 22, 104, 5);
//DispASCIIStr("START?",16,160,0);
DispASCIIStr(CommonTip[TIP_START_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],14,160,0);
while(1)
{
g_ucKeyData = 0;
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_OK://Start Leak Check
DispASCIIStr (CommonTip[TIP_CHECKING_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
14,160,0);
if(LeakCheck())
DispASCIIStr(CommonTip[TIP_PASS_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
14,160,0);
else
{
DispASCIIStr(CommonTip[TIP_FAIL_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
14,160,0);
SleepAndQueryMsg(1000);
DispASCIIStr(CommonTip[TIP_START_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
14,160,0);
}
break;
case KEY_ESCAPE:
return TRUE;
}
}
}
return TRUE;
}
//void HangUpMenu(void);
#define VEHICLE_MSG_X0 12
#define VEHICLE_MSG_Y0 64
#define VEHICLE_MSG_WIDTH 32
BOOL VehicleMsgMenu(void)
{
unsigned char ucSubMenu=1;
DispVehicleMsg:
ClearLCD(0x28,2, 10,36,200);
DispASCIIStr(MainMenuString[LAYER1_VEHICLE_MSG-1+
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
14,10,0); //DispASCIIStr("SETTING",14,10,0);
DispSubMenuContent(VehicleMsgMenuString,VEHICLE_MSG_MENU_MAX_NUM,
VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
DispSubMenuNum(ucSubMenu, VEHICLE_MSG_MENU_MAX_NUM,
VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
while(TRUE)
{
g_ucKeyData = 0;
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_UP:
if(ucSubMenu == 1)
ucSubMenu = VEHICLE_MSG_MENU_MAX_NUM;
else
(ucSubMenu)--;
DispSubMenuNum(ucSubMenu,VEHICLE_MSG_MENU_MAX_NUM,
VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
break;
case KEY_DOWN:
if(ucSubMenu == VEHICLE_MSG_MENU_MAX_NUM)
ucSubMenu = 1;
else
(ucSubMenu)++;
DispSubMenuNum(ucSubMenu,VEHICLE_MSG_MENU_MAX_NUM,
VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
break;
case KEY_OK:
switch(ucSubMenu)
{
case VEHICLE_MSG_REG_NO :
VehicleRegNo();
break;
case VEHICLE_MSG_RPM:
//;
break;
case VEHICLE_MSG_FUEL_TYPE:
VehicleFuelType();
break;
//;
}
goto DispVehicleMsg;
break;
case KEY_ESCAPE:
return TRUE;
}
}
}
return TRUE;
}
/*=================================================
傳人參數(shù):ucMeasureType 作用是受上位機(jī)控制時(shí),在其它
界面可以轉(zhuǎn)換到對(duì)應(yīng)的測(cè)量屏。
D7-------本參數(shù) (1)有效 (0)無效
D1 D0---
|--00 無意義
|--01 普通測(cè)量
|--10 怠速測(cè)量
|--11 雙怠速測(cè)量
**================================================*/
BOOL MeasureMenu(unsigned char ucMeasureType)
{
unsigned char ucSubMenu=1;
DispMeasure:
ClearLCD(0x28,6, 10,30,200);
DispASCIIStr(MainMenuString[LAYER1_MEASURE-1+
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
14,10,0); //DispASCIIStr("SETTING",14,10,0);
DispSubMenuContent(MeasureMenuString,MEASURE_MENU_MAX_NUM,
10,64, 32);
DispSubMenuNum(ucSubMenu, MEASURE_MENU_MAX_NUM,
10,64, 32);
while(TRUE)
{
g_ucKeyData = 0;
if((ucMeasureType & 0x80) || (!SleepAndQueryMsg(1000)))
{
if (ucMeasureType & 0x80)
{
g_ucKeyData = KEY_OK;
ucSubMenu = ucMeasureType & 0x03;
}
switch(g_ucKeyData)
{
case KEY_UP:
if(ucSubMenu == 1)
ucSubMenu = MEASURE_MENU_MAX_NUM;
else
(ucSubMenu)--;
DispSubMenuNum(ucSubMenu,MEASURE_MENU_MAX_NUM,
10,64, 32);
break;
case KEY_DOWN:
if(ucSubMenu == MEASURE_MENU_MAX_NUM)
ucSubMenu = 1;
else
(ucSubMenu)++;
DispSubMenuNum(ucSubMenu,MEASURE_MENU_MAX_NUM,
10,64, 32);
break;
case KEY_OK:
switch(ucSubMenu)
{
case MEASURE_COMMON :
MeasureCommonMenu();
goto DispMeasure;
case MEASURE_IDLE:
MeasureIdleMenu();
goto DispMeasure;
case MEASURE_DUAL:
MeasureDualMenu();
goto DispMeasure;
}
break;
case KEY_ESCAPE:
return TRUE;
}
}
}
return TRUE;
}
#define SETTING_MENU_X0 10
#define SETTING_MENU_Y0 64
#define SETTING_MENU_WIDTH 32
BOOL SettingMenu(void)
{
unsigned char ucSubMenu=1;
DispSetting:
ClearLCD(0x28,6, 10,30,200);
DispASCIIStr(MainMenuString[LAYER1_SETTING-1+
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
14,10,0); //DispASCIIStr("SETTING",14,10,0);
DispSubMenuContent(SettingMenuString,SETTING_MENU_MAX_NUM,
SETTING_MENU_X0,SETTING_MENU_Y0,SETTING_MENU_WIDTH);
DispSubMenuNum(ucSubMenu, SETTING_MENU_MAX_NUM,
SETTING_MENU_X0,SETTING_MENU_Y0,SETTING_MENU_WIDTH);
while(TRUE)
{
g_ucKeyData = 0;
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_UP:
if(ucSubMenu == 1)
ucSubMenu = SETTING_MENU_MAX_NUM;
else
(ucSubMenu)--;
DispSubMenuNum(ucSubMenu,SETTING_MENU_MAX_NUM,
SETTING_MENU_X0,SETTING_MENU_Y0,SETTING_MENU_WIDTH);
break;
case KEY_DOWN:
if(ucSubMenu == SETTING_MENU_MAX_NUM)
ucSubMenu = 1;
else
(ucSubMenu)++;
DispSubMenuNum(ucSubMenu,SETTING_MENU_MAX_NUM,
SETTING_MENU_X0,SETTING_MENU_Y0,SETTING_MENU_WIDTH);
break;
case KEY_OK:
switch(ucSubMenu)
{
case SETTING_COM :
SettingComMenu();
goto DispSetting;
// case SETTING_TIME :
// TimeMenu();
// goto DispSetting;
case SETTING_LANGUAGE:
SettingLanguageMenu();
goto DispSetting;
}
break;
case KEY_ESCAPE:
return TRUE;
}
}
}
return TRUE;
}
#define FUNCTION_MENU_X0 14
#define FUNCTION_MENU_Y0 64
#define FUNCTION_MENU_WIDTH 32
BOOL FunctionMenu(void)
{
unsigned char ucSubMenu=1;
DispFunction:
ClearLCD(0x28, 6,10, 30,200);
DispASCIIStr(MainMenuString[LAYER1_FUNCTION-1+
sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
14,10,0); //DispASCIIStr("SETTING",14,10,0);
DispSubMenuContent(FunctionMenuString,FUNCTION_MENU_MAX_NUM,
FUNCTION_MENU_X0,FUNCTION_MENU_Y0, FUNCTION_MENU_WIDTH);
DispSubMenuNum(ucSubMenu, FUNCTION_MENU_MAX_NUM,
FUNCTION_MENU_X0,FUNCTION_MENU_Y0, FUNCTION_MENU_WIDTH);
while(TRUE)
{
g_ucKeyData = 0;
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_UP:
if(ucSubMenu == 1)
ucSubMenu = FUNCTION_MENU_MAX_NUM;
(ucSubMenu)--;
DispSubMenuNum(ucSubMenu,FUNCTION_MENU_MAX_NUM,
FUNCTION_MENU_X0,FUNCTION_MENU_Y0, FUNCTION_MENU_WIDTH);
break;
case KEY_DOWN:
if(ucSubMenu == FUNCTION_MENU_MAX_NUM)
ucSubMenu = 1;
else
(ucSubMenu)++;
DispSubMenuNum(ucSubMenu,FUNCTION_MENU_MAX_NUM,
FUNCTION_MENU_X0,FUNCTION_MENU_Y0, FUNCTION_MENU_WIDTH);
break;
case KEY_OK:
switch(ucSubMenu)
{
case FUNCTIONG_CALIBRATION:
FunctionCalibrationMenu();
goto DispFunction;
case FUNCTIONG_ZERO:
FunctionZeroMenu();
goto DispFunction;
}
break;
case KEY_ESCAPE:
return TRUE;
}
}
}
return TRUE;
}
//void HelpMenu(void);
//void DiagnoseMenu(void);
/*
void MainMenu(unsigned char *pSubMenu)
{
ClearLCD(0x28,2, 10,36,200);
DispASCIIStr("MENU",14,10,0);
DispASCIIStr("0.LEAK CHECK", 6, 10+MAIN_MENU_ROW_WIDTH*1, 0);
DispASCIIStr("1.HANG-UP TEST", 6, 10+MAIN_MENU_ROW_WIDTH*2, 0);
DispASCIIStr("2.VEHICLE MESSAGE", 6, 10+MAIN_MENU_ROW_WIDTH*3, 0);
DispASCIIStr("3.MESSURE", 6, 10+MAIN_MENU_ROW_WIDTH*4, 0);
DispASCIIStr("4.CALIBRATE", 6, 10+MAIN_MENU_ROW_WIDTH*5, 0);
DispASCIIStr("5.HELP", 6, 10+MAIN_MENU_ROW_WIDTH*6, 0);
DispASCIIStr("6.DIAGNOSE", 6, 10+MAIN_MENU_ROW_WIDTH*7, 0);
DispASCIIStr("7.COM SETTING", 6, 10+MAIN_MENU_ROW_WIDTH*8, 0);
DispASCIIStr("8.TIME SETTING", 6, 10+MAIN_MENU_ROW_WIDTH*9, 0);
DispASCIIStr("9.LANGUAGE", 6, 10+MAIN_MENU_ROW_WIDTH*10, 0);
}
void DispSubMenuNum(unsigned char Number){
unsigned char i,color;
for(i=0;i<10;i++)
{
if(i == Number) color = 1;
else color = 0;
DispCHAR_16x8(&ASCII_16[(16+i)*16], 6,28+MAIN_MENU_ROW_WIDTH*i,color);
}
DispCHAR_16x8(&ASCII_16[(16+1)*16], 6,10+20*1,0);
DispCHAR_16x8(&ASCII_16[(16+2)*16], 6,10+20*2,0);
DispCHAR_16x8(&ASCII_16[(16+3)*16], 6,10+20*3,0);
DispCHAR_16x8(&ASCII_16[(16+4)*16], 6,10+20*4,0);
DispCHAR_16x8(&ASCII_16[(16+5)*16], 6,10+20*5,0);
DispCHAR_16x8(&ASCII_16[(16+6)*16], 6,10+20*6,0);
DispCHAR_16x8(&ASCII_16[(16+7)*16], 6,10+20*7,0);
DispCHAR_16x8(&ASCII_16[(16+8)*16], 6,10+20*8,0);
DispCHAR_16x8(&ASCII_16[(16+9)*16], 6,10+20*9,0);
// DispCHAR_16x8(&ASCII_16[(16+Number)*16],6,(unsigned char)(26+MAIN_MENU_ROW_WIDTH*Number),1);
void KeyNote()
{
DrawRect(7*0, 216,1); DrawRect(7*1, 216,1); DrawRect(7*2, 216,1);
DrawRect(7*3, 216,1); DrawRect(7*4, 216,1); DrawRect(7*5, 216,1);
DispBmp16x24(&KEY_NOTE[48*0], 1+7*0, 220,0);
DispBmp16x24(&KEY_NOTE[48*1], 1+7*1, 220,0);
DispBmp16x24(&KEY_NOTE[48*2], 1+7*2, 220,0);
DispBmp16x24(&KEY_NOTE[48*3], 1+7*3, 220,0);
DispBmp16x24(&KEY_NOTE[48*4], 1+7*4, 220,0);
DispBmp16x24(&KEY_NOTE[48*5], 1+7*5, 220,0);
}
}*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -