📄 key.c
字号:
//for (i=0;i<6;i++)
// disp_buffer[i]=m_ucCurrLoadMenuID[i];
//disp_ram_data(0,4,6,0);
//while (1);
break;
case MENU_SYSSET_AUXPARA_MENGJIN1://设置门禁启用否
// case MENU_SYSSET_AUXPARA_MENGJIN2:
// case MENU_SYSSET_AUXPARA_MENGJIN3:
case MENU_SYSSET_AUXPARA_ZHILIUV://设置直流电压采样,开启否
case MENU_SYSSET_AUXPARA_ZHILIUA://设置支流电流采样,开启否
case MENU_SYSSET_AUXPARA_JIAOLIUV://设置交流电压采样,开启否
case MENU_SYSSET_AUXPARA_JIAOLIUA://设置交流电流采样,开启否
case MENU_SYSSET_AUXPARA_FIRSTWENSHIDU://设置第一路温湿度,开启否
// case MENU_SYSSET_AUXPARA_SECONDWENSHIDU://设置第二路温湿度,开启否
// case MENU_SYSSET_AUXPARA_THIRDWENSHIDU://设置第三路温湿度,开启否
for(i = 0; i<6; i++)
m_ucCurrLoadMenuID[i]=pgm_read_byte(&Menu_guimouID[i]);
GoTopDispMenuID(m_ucCurrMenuID,6);
break;
default:
break;
}
}
void DisplayNodata(void)
{
Lcd_Clear();
Lcd_Printf(16,3,PSTR("无"),0);
// Lcd_Printf(0,6,"按任意键退出",0);
//wait_anykey();??
}
void wait_anykey(void)
{
//todo
/*while (1)
{
if (key_each)
break;
}*/
}
//实现采单设置
void ExecMenu(void)
{
switch(m_ucCurrMenuID)
{
case MENU_VIEW_UNHANDLEDALR:
/// m_uiKeybResv=getTotalAlrByClass(VClass_UnhandledAlr);
if (m_uiKeybResv>0);
// ExecMenu_ViewAlr(VClass_UnhandledAlr,m_uiKeybResv);//WmDcMenu.c
else
DisplayNodata();
break;
//case MENU_OPR_CLRHANDLEDALR:
// ExecMenu_ClrAlr(VClass_HandledAlr);
// break;
case MENU_OPR_MCOOL:
// ExecMenu_ClrAlr(VClass_ReportedAlr);
//TODO
break;
case MENU_OPR_MHOT:
// ExecMenu_CodeOpr();
//TODO
break;
case MENU_OPR_MHOTCHANGE:
// ExecMenu_ClrAlr(VClass_SimAlr);
//TODO
break;
case MENU_OPR_MAIRCHANGE:
// ExecMenu_ClrAlr(VClass_AllAlr);
//TODO
break;
case MENU_OPR_AIRCHANGE:
// ExecMenu_ClrRs485Err();
//TODO
break;
case MENU_OPR_LEAVE:
// ExecMenu_ClrAlr(VClass_SimAlr);
//TODO
break;
case MENU_OPR_MOREV:
// ExecMenu_ClrAlr(VClass_AllAlr);
//TODO
break;
case MENU_OPR_LOWERV:
// ExecMenu_ClrRs485Err();
//TODO
break;
// case MENU_SYSSET_RS485DEVPARA:
// ExecMenu_SetRs485Dev();//设置485拨特率
// break;
// case MENU_SYSSET_PASSWORD:
// ExecMenu_SetPassWord();//设置密码
// break;
// case MENU_SYSSET_MAINPARA_DCTYPE:
// ExecMenu_SetDcType();//局站型号
// break;
// case MENU_SYSSET_MAINPARA_COMMMODE:
// ExecMenu_SetCommMode();//通讯方式
// break;
// case MENU_SYSSET_MAINPARA_232BDRATE:
// ExecMenu_SetBDRate(1);//串口拨特率
// break;
case MENU_SYSSET_AUXPARA_UPPH1:
///// ExecMenu_SetUpPh(1);//上拨号码
break;
case MENU_SYSSET_AUXPARA_UPPH2:
//// ExecMenu_SetUpPh(2);//上拨号码
break;
case MENU_SYSSET_AUXPARA_UPPH3:
/// ExecMenu_SetUpPh(3);//上拨号码
break;
case MENU_SYSSET_AUXPARA_TIME:
/// ExecMenu_SetTime();//时间设置
break;
case MENU_SYSSET_AUXPARA_ADDRESS:
/// ExecMenu_SetStaID();//局站地址
break;
// case MENU_SYSSET_AUXPARA_GPGDZ:
// ExecMenu_SetGPGDZ();//工频固定值
// break;
// case MENU_SYSSET_AUXPARA_Test:
// ExecMenu_SetTestPara();//检测电流环间隔
// break;
/* case MENU_SYSSET_GONGPDJPARA_YBMA:
ExecMenu_SetGongPDJ(0);
break;
case MENU_SYSSET_GONGPDJPARA_ZYMA:
ExecMenu_SetGongPDJ(1);
break;
case MENU_SYSSET_GONGPDJPARA_YZMA:
ExecMenu_SetGongPDJ(2);
break;*/
default:
break;
}
}
void UpDispMenuIDBuffer(void)
{
unsigned char i;
m_ucCurrMenuID=pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressUp));
if ((m_ucCurHLightRow==0)&&(pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_MaxItems))>MAX_MENUDISPLAYROW))
{
for (i=MAX_MENUDISPLAYROW-1;i>0;i--)
m_ucCurrDispMenuID[i]=m_ucCurrDispMenuID[i-1];
m_ucCurrDispMenuID[0]=m_ucCurrMenuID;
}
}
void DownDispMenuIDBuffer(void)
{
unsigned char i;
m_ucCurrMenuID=pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressDown));
if ((m_ucCurHLightRow==MAX_MENUDISPLAYROW-1)&&(pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_MaxItems))>MAX_MENUDISPLAYROW))
{
for (i=0;i<MAX_MENUDISPLAYROW-1;i++)
m_ucCurrDispMenuID[i]=m_ucCurrDispMenuID[i+1];
m_ucCurrDispMenuID[MAX_MENUDISPLAYROW-1]=m_ucCurrMenuID;
}
}
//方向控制
void UpHLightRow(void)
{
if (m_ucCurHLightRow>0)
m_ucCurHLightRow--;
}
void DownHLightRow(void)
{
if (m_ucCurHLightRow<MAX_MENUDISPLAYROW-1)
m_ucCurHLightRow++;
}
u08 DisplayMenu(void)
{
unsigned char i;
unsigned char ucMenuID;
unsigned char ucMode;
Lcd_ClearAll();
if ((m_ucCurrMenuID==MENU_FACE)||(m_ucCurrMenuID==MENU_ROOT))
{
// DisplayFace();//首界面返回
// display_first_face();
// todo
return 1;
}
/****** For Debug ***********
if (m_ucCurrMenuID==MENU_SYSSET_MAINPARA)
{
for (i=0;i<MAX_MENUDISPLAYROW;i++)
disp_buffer[i]=m_ucCurrDispMenuID[i];
disp_ram_data(0,4,MAX_MENUDISPLAYROW,0);
while (1);
}
******** Endfor Debug *******/
for (i=0;i<MAX_MENUDISPLAYROW;i++)
{
if (i==m_ucCurHLightRow)
ucMode=1;//黑亮显示
else
ucMode=0;
ucMenuID=m_ucCurrDispMenuID[i];
Lcd_Printf_ram(0,2*i+1,pgm_read_word(&Menu_String[ucMenuID]),ucMode);//显示目录
if (pgm_read_byte(&(KeyTab[ucMenuID].KeyTab_PressOk))!=255)
Lcd_DispMarkHz_ChildMenu(111,2*i+1,ucMode);//子菜单提示符
else
Lcd_DispMarkHz_Blank(111,2*i+1,ucMode);
}
return 0;
}
//
//************************************************************************
//* 菜单结构: *
//************************************************************************
//*待机画面--------------------->(MenuID=0) *
//* ---+ *
//* |查看--------------------->(MenuID=1) *
//* +---+ *
//* | |未处理告警-------->(MenuID=2) *
//* | +-------------- *
//* | | -------->(MenuID=) *
//* | +-------------- *
//* | | -------->(MenuID=) *
//* | +-------------- *
//* | | -------->(MenuID=) *
//* | +-------------- *
//* | | -------->(MenuID=) *
//* | +-------------- *
//* |设置------------------->(MenuID=3) *
//* +---+ *
//* | |设备仓制冷--------->(MenuID=4) *
//* | +-------------- *
//* | |设备仓制热--------->(MenuID=5) *
//* | +-------------- *
//* | |设备仓热交换------->(MenuID=6) *
//* | +-------------- *
//* | |设备仓空气循环----->(MenuID=7) *
//* | +-------------- *
//* | |电池仓空气循环----->(MenuID=8) *
//* | +-------------- *
//* | |蓄电池跳脱----->(MenuID=9) *
//* | |直流过压----------->(MenuID=10) *
//* | +-------------- *
//* | |直流欠压----------->(MenuID=11) *
//*
//* |系统设置--------------->(MenuID=12) *
//* +---+ *
//* | |上拨号码一--------->(MenuID=13) *
//* | +-------------- *
//* | |上拨号码二------>(MenuID=14) *
//* | +-------------- *
//* | |上拨号码三------>(MenuID=15) *
//* | +-------------- *
//* | |时间设置------>(MenuID=16) *
//* | +-------------- *
//* | |局站地址------>(MenuID=17) *
//* | +-------------- *
//************************************************************************
void menu_handle(void)
{
//unsigned char ucKeyValue;
//ucKeyValue=KEY_NULL;//100
m_ucCurHLightRow=0;
m_ucCurrMenuID=MENU_VIEW;//2,一级目录
LoadMenu();
DisplayMenu();
}
u08 menue_move(u08 key_pressed)
{
switch(key_pressed)
{
case KEY_OK://PD2,2,确认
if(pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressOk))!=255)
{
m_ucCurrMenuID=pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressOk));
LoadMenu();
DisplayMenu();
}
else
{
// ExecMenu();
LoadMenu();
DisplayMenu();
}
break;
case KEY_UP://PA7,7向上
if (pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressUp))!=255)
{
UpDispMenuIDBuffer();
UpHLightRow();
DisplayMenu();
}
break;
case KEY_ESC://165输入,0x7FFF,返回,8
if(pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressEsc))!=255)
{
m_ucCurrMenuID=pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressEsc));
LoadMenu();
if(DisplayMenu())
return 1;
break;
}
else
{
// g_ucTimeDispMode=0x80;
Lcd_ClearAll();//清屏
return 1;
}
case KEY_RIGHT://PD5,5,向上
if (pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressUp))!=255)
{
UpDispMenuIDBuffer();
UpHLightRow();
DisplayMenu();
}
break;
case KEY_LEFT://PD3, 3,向下
if (pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressDown))!=255)
{
DownDispMenuIDBuffer();
DownHLightRow();
DisplayMenu();
}
break;
case KEY_DOWN://PD4,4,向下
if (pgm_read_byte(&(KeyTab[m_ucCurrMenuID].KeyTab_PressDown))!=255)
{
DownDispMenuIDBuffer();
DownHLightRow();
DisplayMenu();
}
break;
default:
break;
}
return 0;
// ucKeyValue=KEY_NULL;
//xRDCCounter_MenuKeyEmptyKeepSeconds=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -