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

}
Beispiel #4
0
/*****************************************************************
函数原型: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;
}
Beispiel #5
0
/*****************************************************************
函数原型: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;
}
Beispiel #6
0
/*****************************************************************
 函数原型:	System_Init()
 功能描述:器件类初始化
 参数描述:	
				 
 返回值:	无
 
 作  者:	大连现代/刘及华
 日  期:	2004-09-17
 修改历史:
		日期		修改人		修改描述
		------		---------	-------------
*****************************************************************/
INT8U System_Check(void)
{

	ToggleWD();
	Lcd_Cls();
	lcddisp(1, 1, "系统自检中...");
	if ( DevStat.err_occured == TRUE )
		return notok;

	return ok;
}
Beispiel #7
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 #8
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;
}