void RestoreMoniter(uchar * ucPTime) { ulong ulDataAddr; WriteDataDirect(ucPTime, EPL_RESTOREMONITER_LASTTIME, 5); ulDataAddr=SetTwoTableNextPoint(TYPE_MONITOR_VOLTAGE_ALL_RECORD); if(GAL_GETTWOTABLE_ADDRERR != ulDataAddr) { WriteDataDirect(&RAM[RAM_VOLTAGE_ALL_MONITOR_STAT_BLOCK_START+3], ulDataAddr, CON_HISTORY_MONITER_LENGTH); } ClrFlashMode(); ClearWatchDog(); ulDataAddr=SetTwoTableNextPoint(TYPE_MONITOR_VOLTAGE_A_RECORD); if(GAL_GETTWOTABLE_ADDRERR != ulDataAddr) { WriteDataDirect(&RAM[RAM_VOLTAGE_A_MONITOR_STAT_BLOCK_START], ulDataAddr, CON_HISTORY_MONITER_LENGTH); } ClrFlashMode(); ClearWatchDog(); ulDataAddr=SetTwoTableNextPoint(TYPE_MONITOR_VOLTAGE_B_RECORD); if(GAL_GETTWOTABLE_ADDRERR != ulDataAddr) { WriteDataDirect(&RAM[RAM_VOLTAGE_B_MONITOR_STAT_BLOCK_START], ulDataAddr, CON_HISTORY_MONITER_LENGTH); } ClrFlashMode(); ClearWatchDog(); ulDataAddr=SetTwoTableNextPoint(TYPE_MONITOR_VOLTAGE_C_RECORD); if(GAL_GETTWOTABLE_ADDRERR != ulDataAddr) { WriteDataDirect(&RAM[RAM_VOLTAGE_C_MONITOR_STAT_BLOCK_START], ulDataAddr, CON_HISTORY_MONITER_LENGTH); } ClrFlashMode(); ClearWatchDog(); Data3ByteBCDAdd1(EPL_TOTAL_CLR_MONITER_COUNT); }
//按键操作处理,菜单显示 void keyproc(void) { LongPressSec=0; gKeyValue=key_scan(); if(gKeyValue) { if(bPrompt) //如果接收提示铃声响,第一次按键选停止提示铃声 { // PromptTim_tmp=0; bPrompt=0; gKeyValue=0; delayms(300); } } switch(gKeyValue) { case KEY_VALUE_OK: LCDBK_ON(15); if(!bBkLight) //第一次打开背光灯时不能进入菜单 { bBkLight=1; LCDBK=0; while(!KEY_OK) ClearWatchDog(); break; } index = MenuProc[index].Enter; Function = MenuProc[index].handle; MenuTimout(20); (*Function)(); while(!KEY_OK) ClearWatchDog(); break; case KEY_VALUE_UP: LCDBK_ON(15); if(!bBkLight) { bBkLight=1;LCDBK=0; while(!KEY_UP)ClearWatchDog(); break; } index = MenuProc[index].Up; Function = MenuProc[index].handle; MenuTimout(20); (*Function)(); break; case KEY_VALUE_DOWN: LCDBK_ON(15); if(!bBkLight) { bBkLight=1;LCDBK=0; while(!KEY_DOWN)ClearWatchDog(); break; } index = MenuProc[index].Down; Function = MenuProc[index].handle; MenuTimout(20); (*Function)(); break; case KEY_VALUE_RETURN: LCDBK_ON(15); if(!bBkLight) { bBkLight=1;LCDBK=0; while(!KEY_RETURN)ClearWatchDog(); break; } else { while((!KEY_RETURN)&&(index==0)) { if( LongPressSec>2) // 长按 { index=63; MenuMode=3; Function = MenuProc[63].handle; (*Function)(); return; } ClearWatchDog(); } index = MenuProc[index].Return; Function = MenuProc[index].handle; if(index==0) { MenuTimout(0); } else { MenuTimout(20); } (*Function)(); delayms(80); break; } break; #if 0 /*sjz change*/ if( LongPressSec>2) // 长按 { index=58; MenuMode=3; Function = MenuProc[58].handle; (*Function)(); return; } ClearWatchDog(); } }