📄 driverlogpage.c
字号:
/****************************************************************
** *
** FILE : DriverLogPage.c *
** *
** By : Cyb 2007.07.01 *
****************************************************************/
#define DRIVERLOGPAGE_GLOBALS
#include "includes.h"
#include "timetask.h"
#include "almtask.h"
#include "message.h"
#include "errcode.h"
#include "errtask.h"
#include "public.h"
#include "uart_drv.h"
#include "LedDrv.h"
#include "DisplayTask.h"
#include "alarmer.h"
#include "Hardware.h"
#include "watchdog.h"
#include "audio.h"
#include "FormPage.h"
#include "WinStack.h"
#include "_keyboard.h"
#include "DriverLogPage.h"
#include "voice.h"
#include "EditBox.h"
#include "DriverLogin.h"
#define DRIVERLOGPAGE_DEBUG 1
static FORMPAGE *DriverLogPage;
static EDITBOX DriverLogEdit;
static TMR_TSK *ReqLoginTmr,*RefleshEditBoxTmr;
static INT8U Status;
static void ReqLoginTmrProc(void)
{
if(Status & LOGED)
{
StopTmr(ReqLoginTmr);
}
else
{
if(!(Status & LOGING))
{
PlaySingleAudio(FALSE,TRUE,AD_reqlogin);
}
}
}
static void RefleshEditBoxProc(void)
{
RefleshEditBox(&DriverLogEdit);
}
static void DriverLogPageInitFunc(void)
{
Status =0;
ClearLedDisplay();
DriverLogEdit.editlen = 0;
PlaySingleAudio(FALSE,TRUE,AD_reqlogin); //输入司机身份证号
ReqLoginTmr = CreateTimer(ReqLoginTmrProc,0);
RefleshEditBoxTmr = CreateTimer(RefleshEditBoxProc,0);
StartTmr(RefleshEditBoxTmr,MILTICK,10);
StartTmr(ReqLoginTmr,MINUTE,5);
}
static void DriverLogPageHdlKeyFunc(void)
{
INT8U key;
key = GetCurKey();
switch(key)
{
case KEY_CLR:
EditBoxDeleteChar(&DriverLogEdit);
break;
case KEY_OK:
if(DriverLogEdit.editlen == 0)
{
PlaySingleAudio(FALSE,TRUE,AD_lognochar);
return;
}
DriverLogingNow(DriverLogEdit.editbuf,DriverLogEdit.editlen);
break;
case KEY_SHIFT:
#if DRIVERLOGPAGE_DEBUG >0
PrintFromUART( DEBUG_UARTNo_DISPLAYTASK, "退出身份录入页面!!!\n");
#endif
CloseFormPage();
break;
default:
if(IsNumber(key))
{
if(!(Status & LOGING))
{
Status |= LOGING;
}
EditBox_HdlNumKey(&DriverLogEdit,key);
}
break;
}
}
static void DriverLogPageDestroyFunc(void)
{
RemoveTmr(ReqLoginTmr);
StopTmr(RefleshEditBoxTmr);
RemoveTmr(RefleshEditBoxTmr);
}
void CreateDriverLogPage(void)
{
#if DRIVERLOGPAGE_DEBUG >0
PrintFromUART( DEBUG_UARTNo_DISPLAYTASK, "进入身份录入页面!!!\n");
#endif
DriverLogPage = AllocateFormPage();
DriverLogPage ->initfunc = DriverLogPageInitFunc;
DriverLogPage ->createfunc = NULL;
DriverLogPage ->hdlkeyfunc = DriverLogPageHdlKeyFunc;
DriverLogPage ->resumefunc = NULL;
DriverLogPage ->destroyfunc = DriverLogPageDestroyFunc;
CreateFormPage();
}
void InformDriverLogged(void)
{
if(!(Status & LOGED))
{
#if DRIVERLOGPAGE_DEBUG >0
PrintFromUART( DEBUG_UARTNo_DISPLAYTASK, "登陆成功,退出身份登录页面!\n");
#endif
Status |= LOGED;
PlaySingleAudio(FALSE,TRUE,AD_logged);
CloseFormPage(); // 关掉页面
}
}
void InformDriveLogerr(void)
{
#if DRIVERLOGPAGE_DEBUG >0
PrintFromUART( DEBUG_UARTNo_DISPLAYTASK, "登陆失败,请重输!\n");
#endif
Status &=~LOGED;
ClearLedDisplay();
DriverLogEdit.editlen = 0;
PlaySingleAudio(FALSE,TRUE,AD_logerr);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -