/* * 函数功能:在列nLineNo上反白居中显示字符串pcDispStr * 入口参数: * nLineNo ―― 显示行(1-7) * pcDispStr ―― 存放显示的内容 * 出口参数:无 * 返 回 值 * NORMAL ―― 成功 * EXCEPTION ―― 失败,错误的行号;或者PCDispStr为NULL */ int TA_LCD_iDisplayInv(char cLineNo, char *pcDispStr) { if (cLineNo < 0 || cLineNo >= MAX_LCD_LINES || pcDispStr == NULL) { return EXCEPTION; } EA_ucSetInverse(EM_lcd_INVON); TA_LCD_iDisplayCen(cLineNo, pcDispStr); EA_ucSetInverse(EM_lcd_INVOFF); return NORMAL; }
/***************************************************************** 函数原型:System_Init() 功能描述:参数等初始化 参数描述: 返回值: OK ? NOTOK 作 者: 许岩/刘及华 日 期: 2012-11-24 修改历史: 日期 修改人 修改描述 ------ --------- ------------- *****************************************************************/ INT8U System_Init(void) { INT8U i = 0; INT16U key = EM_key_NOHIT; EA_vCls(); EA_ucSetInverse(EM_lcd_INVOFF); EA_vDisp(1, 1, " 版本号: "); EA_vDisp(1, 13, VERSION); SleepMs(2000); EA_vCls(); EA_vDisp(2, 1, " 系统初始化中... "); key = EA_uiInkeyMs(2000); if ( key == EM_key_F3 ) { format_process(); //可以进行系统格式化操作 } //重要参数部分初始化函数 appfile_Init(); memset((void *)&DevStat, 0x00, sizeof(DevStat)); i = ReadParam(); if ( i != ok ) { param_factory_default(0); //格式化重要参数DEV.STATE } DevStat.POS_type = POS_T_NORMAL; //盒类型为正常采集 DevStat.record_number = query_rec_num(); memset((void *)&CardInfo, 0x00, sizeof(CardInfo)); //清除卡的信息 memset((void *)&ErrCardInfo, 0x00, sizeof(ErrCardInfo)); //清除错误卡的信息 //这里应该添加一个函数,负责管理所有的设备的句柄结构!!!! i = Device_Handle_Init(); if( i != ok) { return notok; } if( LowBatteryDisplay() != ok ) //电池电量检测 { lcddisperr("电池电量检测失败"); return notok; } if( SystemCheck() != ok ) //PSAM系统检测 { lcddisperr("PSAM卡检测失败"); 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); }
/***************************************************************** 函数原型:DisplayWelcomeMenu 功能描述:本函数为显示欢迎界面 参数描述:无 参数名称: 输入/输出? 类型 描述 ----------- ----------- ------ ------- 返 回 值:无 *****************************************************************/ void DisplayWelcomeMenu(void) { EA_vCls(); EA_vDrawIcons(); EA_ucSetInverse(EM_lcd_INVOFF); EA_vDisp(1, 1, " 淄博市公共汽车公司 "); EA_vDisp(2, 1, " 手持POS加油机 "); EA_vDisp(3, 6, (void *)VERSION); if ( DevStat.record_number >= MAX_REC_NUM ) { EA_vDisp(3, 1, " 记录已满, 请上传 "); } EA_vDisp(4, 1, "设置 快捷 登陆"); return ; }
/***************************************************************** 函数原型:DisplayWelcomeMenu 功能描述:本函数为显示欢迎界面 参数描述:无 参数名称: 输入/输出? 类型 描述 ----------- ----------- ------ ------- 返 回 值:无 *****************************************************************/ void DisplayWelcomeMenu(void) { BUS_TIME ltime; INT8U buf[22]; EA_vCls(); EA_ucSetInverse(EM_lcd_INVOFF); EA_vDisp(1, 1, " 淄博市公共汽车公司 "); EA_vDisp(2, 1, " 手持POS加油机 "); Get_Time(<ime); sprintf((void *)buf, " %02X%02X-%02X-%02X %02X:%02X", ltime.century, ltime.year, ltime.month, ltime.day, ltime.hour, ltime.minute); EA_vDisplay(3, (void *)buf); if ( DevStat.record_number >= MAX_REC_NUM ) { EA_vDisp(3, 1, " 记录已满, 请上传 "); } EA_vDisp(4, 1, "F1设置 F2上传 F3登陆"); return ; }
// ***************************************************************** // 功能: 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; }