Beispiel #1
0
/*
* 函数功能:在列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;
}
Beispiel #2
0
/*****************************************************************
 函数原型: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;
}
Beispiel #3
0
/******************************************************************************
 函数名称: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);

}
Beispiel #4
0
/*****************************************************************
函数原型: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 ;
}
Beispiel #5
0
/*****************************************************************
函数原型: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(&ltime);
	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 ;
}
Beispiel #6
0
// *****************************************************************
// 功能:		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;
}