/***************************************************************** 函数原型:LowBatteryDisplay 功能描述:本函数为电池电量显示 参数描述:无 参数名称: 输入/输出? 类型 描述 作 者: 刘及华 日 期: 2012-11-24 修改历史: 日期 修改人 修改描述 返 回 值:无 *****************************************************************/ INT8U LowBatteryDisplay(void) { ET_PowerInfo PowerInfo; // ET_PowerType ucType; // ET_PowerCapLevel ucCapability; if( EA_ucGetPowerInfo(&PowerInfo) != EM_SUCCESS ) { lcddisperr("batt check failed."); return notok; } if( PowerInfo.ucType == EM_power_TYPE_BATTERY ) { if( PowerInfo.ucCapLevel == EM_power_CAPACITY_LEVEL_LOW ) { lcddisperr(" 电池电量低请充电 "); return notok; } else if( PowerInfo.ucCapLevel == EM_power_CAPACITY_LEVEL_CRITICAL ) { lcddisp(1, 1, (void *)"电池电量过低系统无法"); lcddisp(2, 1, (void *)" 启动请立即充电 "); (void)EA_uiInkey(1); return notok; } } return ok; }
/****************************************************************************** 函数名称:Get_Passwd 功能描述:验证密码进入设置POS号状态 参数描述: 参数名称: 输入/输出? 类型 描述 返 回 值:ok(0)-验证成功 notok(0xFF)-验证失败 作 者 :刘及华 日 期:2005-05-20 修改历史: 日期 修改人 修改描述 ------ --------- ------------- ******************************************************************************/ INT8U Get_Passwd(void) { INT8U i; INT8U key_seq[20]; INT8S *password = (INT8S *)"22995757"; INT8U buf[20]; ToggleWD(); Lcd_Cls(); lcddisp(1, 1, "请输入密码: "); Beep(50); SleepMs(50); Beep(50); SleepMs(50); Beep(50); SleepMs(1000); for ( i=0; i<8; i++ ) //取得8个按键输入 { do //only accept 0-9, '+', '-' { key_seq[i] = get_key(); }while ( !( (key_seq[i]>='0' && key_seq[i]<='9') ) ); buf[strlen((void *)buf) - 1] = '\0'; strcat((void *)buf, (void *)"*_"); // LCD_Display_Str(2, 0, buf, NORMAL); lcddisp(2, 1, buf); // OSTimeDlyHMSM(0, 0, 0, 150); OSTimeDlyHMSM(0, 0, 0, 100); } key_seq[i] = '\0'; if ( strcmp((void *)key_seq, (void *)password) != 0 ) //密码错误 { lcddisp(2, 2, "密码错误"); OSTimeDlyHMSM(0, 0, 1, 0); return notok; } lcddisp(2, 2, "密码正确"); lcddisp(3, 0, "执行格式化操作.."); OS_ENTER_CRITICAL(); InitImportantParameter(); OS_EXIT_CRITICAL(); OSTimeDlyHMSM(0, 0, 1, 0); //为了显示能看清 resetpos(); return ok; }
/****************************************************************************** 函数名称:DisplayVersion 功能描述:开机显示版本号 参数描述: 参数名称: 输入/输出? 类型 描述 version 输入 const char* 要显示的版本号,例如输入0x00 0x01 则显示0.0.1 返 回 值:无 作 者 :刘及华 日 期:2004-09-02 修改历史: 日期 修改人 修改描述 ------ --------- ------------- ******************************************************************************/ void DisplayVersion(const char * version) { ToggleWD(); Lcd_Cls(); #ifdef DEBUG lcddisp(1, 0, "测试"); #else #endif lcddisp(1, 2, VERSION); }
/***************************************************************** 函数原型:DisplayID 功能描述:显示ID号 参数描述:无 参数名称: 输入/输出? 类型 描述 ----------- ----------- ------ ------- 返 回 值:无 作 者 :刘及华 日 期 :2005-5-23 修改历史: 日期 修改人 修改描述 ------ --------- ------------- *****************************************************************/ void DisplayID(INT32U id) { // INT8U i = 0; INT8S buf[50]; ToggleWD(); lcddisp(2, 1, "ID号: "); buf[0] = ascii(id / 100000); buf[1] = ascii((id % 100000) / 10000); buf[2] = ascii((id % 10000) / 1000); buf[3] = ascii((id % 1000) / 100); buf[4] = ascii((id % 100) / 10); buf[5] = ascii(id % 10); buf[6] = '\0'; lcddisp(2, 4, buf); return; }
/***************************************************************** 函数原型:SystemCheck 功能描述:本函数为系统检测 参数描述:无 参数名称: 输入/输出? 类型 描述 ----------- ----------- ------ ------- 作 者: 刘及华 日 期: 2012-11-28 返 回 值:有 1:成功 0:失败 *****************************************************************/ INT8U SystemCheck() { INT8U ret = 0; //SAM卡检测 EA_vCls(); // EA_vDisp(2, 1, " PSAM卡检测中... "); // (void)EA_uiInkeyMs(2000); ret = SamCheck(); if ( ret != ok ) { EA_vCls(); lcddisp(1, 1, (void *)" PSAM卡检测错误 "); lcddisp(2, 1, (void *)" 请检查插槽 "); (void)EA_uiInkeyMs(2000); return notok; } // lcddisperr(" PSAM卡检测成功!"); return ok; }
/***************************************************************** 函数原型: System_Init() 功能描述:器件类初始化 参数描述: 返回值: 无 作 者: 大连现代/刘及华 日 期: 2004-09-17 修改历史: 日期 修改人 修改描述 ------ --------- ------------- *****************************************************************/ INT8U System_Check(void) { ToggleWD(); Lcd_Cls(); lcddisp(1, 1, "系统自检中..."); if ( DevStat.err_occured == TRUE ) return notok; return ok; }
/****************************************************************************** 函数名称:format_process 功能描述:格式化处理 参数描述: 参数名称: 输入/输出? 类型 描述 返 回 值:无 作 者 :许岩/刘及华 日 期:2012-11-24 修改历史: 日期 修改人 修改描述 ------ --------- ------------- ******************************************************************************/ void format_process(void) { INT8U i = 0; INT8U input[50]; INT8U passwd[10] = "22884646"; EA_vCls(); (void)EA_vDisp(1, 1, (void *)" 系统格式化 "); (void)EA_vDisp(2, 1, (void *)"输入密码:"); (void)EA_ucClrKeyBuf(); strcpy((void *)input, ""); for ( ;; ) { i = EA_ucGetInputStr(2, 10, 20, EM_BIG_FONT | EM_MODE_NUMBER | EM_ALIGN_LEFT | EM_SHOW_PASSWORD , 8, 8, 0, (void *)input); if ( i == EM_SUCCESS ) break; if ( i == EM_ABOLISH ) return; } if ( strcmp((void *)input, (void *)passwd) == 0 ) { lcddisperr("系统正在格式化..."); } else { EA_ucSetInverse(EM_lcd_INVON); lcddisp(4, 1, (void *)"密码错误!"); EA_ucSetInverse(EM_lcd_INVOFF); return; } //初始化操作 param_factory_default(1); }
// ***************************************************************** // 功能: man_set_busnum // 说明: 手动输入车号 // 入口参数: // 出口参数: Null // 作者: // 返回值: Null // ***************************************************************** void man_set_busnum(void) { INT8U i = 0; INT8U input1[20]; uchar uckey; uint uikey; uchar ret; uchar temp_uc[5]; // if ( strcmp((void *)&DevStat.bus_number[0], "12345") == 0 ) // { // goto set_bus_number; // } EA_vCls(); lcddisp(2, 1, (void *)"输入车号: "); strcpy((void *)input1, ""); for ( ;; ) { i = EA_ucGetInputStr(2, 10, 20, EM_BIG_FONT | EM_MODE_CHAR | EM_ALIGN_LEFT | EM_SHOW_ORIGINALLY , 5, 5, 0, (void *)input1); //刘及华,修改只能输入数字和字母 if ( i == EM_SUCCESS ) break; if ( i == EM_ABOLISH ) return; //do nothing } memcpy((void *)&CardInfo.bus_number[0], (void *)input1, 5); WriteParam(); EA_ucSetInverse(EM_lcd_INVON); lcddisp(3, 1, (void *)" 输入成功 "); EA_ucSetInverse(EM_lcd_INVOFF); SleepMs(1500); RESELECT: memcpy(temp_uc, &CardInfo.bus_number[0], 5); i = BlackName_Find((char *)temp_uc); //白名单判断 if ( i != ok ) //不是白名单 { lcddisperr("该卡不在白名单中"); Beeperr(); return; } EA_vCls(); EA_vDisplay(1, "车 号 :鲁C-%s", CardInfo.bus_number); lcddisp(4, 1, (void *)" 请刷员工卡 "); while(1) { if( CardInit() == ok ) break; uckey = EA_ucKBHit(); if ( uckey == EM_key_HIT ) //按下取消键 { uikey = EA_uiInkey(0); if ( uikey == EM_key_CANCEL ) //按下取消键 { return ; } } } ret = M1CardProcess(); //再检测员工卡 if(ret == ok) { ; } else { goto RESELECT; } return; }