示例#1
0
/* 系统检查,此函数为检测不过只有按取消键跳越 */
void PubCheckTerminal( void )
{
DevHandle hDevHandle;
uchar ucRet;
int  iPrinterType ,iPinpadType, iPinpadVer;

	EA_vCls();
	PubDisplayInv(1 , "系统自检");


	PubDisplayCen(3 , "密码键盘");
	PubuiInkey(1);
	PubUsePinpadInside(FV.gbstCfg.nInputPinType); //[12/15/2013 zyf DJ] 德基默认内置
	hDevHandle = EM_NULL;
	PubGetPinpadType( &iPinpadType );
	while ((ucRet = PubOpenDevice((char*)"PINPAD", EM_io_EPP, &hDevHandle)) != EM_SUCCESS)
	{
		PubDisplay(3, "========[%d]========", ucRet);
		PubDisplayCen(4, "请接入密码键盘");
		EA_vBeepMs(50);
		if( PubuiInkey(1) == EM_key_CANCEL ){
			EA_ucCloseDevice(&hDevHandle);
			break;
		}
	}
	PubGetPinpadVer(hDevHandle, &iPinpadVer);
	while ((ucRet = PubResetPinpad( hDevHandle )) != EM_SUCCESS)
	{
		PubDisplay(3, "========[%d]========", ucRet);
		PubDisplayCen(4, "请接入密码键盘");
		EA_vBeepMs(50);
		if( PubuiInkey(1) == EM_key_CANCEL ){
			EA_ucCloseDevice(&hDevHandle);
			break;
		}
	}
	EA_ucCloseDevice(&hDevHandle);
	
	PubClearAll();
	PubDisplayCen(3 , "打 印 机");
	PubuiInkey(1);
	PubGetPrinterType( &iPrinterType );
	while ((ucRet = PubOpenDevice((char *)"PRINT", EM_io_REALMODE, &hDevHandle)) != EM_SUCCESS)
	{
		PubDisplay(3, "========[%d]========", ucRet);
		PubDisplayCen(4, "请检查打印机");
		EA_vBeepMs(50);
		if( PubuiInkey(1) == EM_key_CANCEL ){
			EA_ucCloseDevice(&hDevHandle);
			break;
		}
	}
	while ((ucRet = EA_ucGetPrinterStatus(hDevHandle)) != EM_SUCCESS)
	{
		PubDisplayCen(2, "缺纸或系统故障");
		PubDisplay(3, "========[%d]========", ucRet);
		PubDisplayCen(4, "请检查打印机");
		EA_vBeepMs(50);
		if( PubuiInkey(1) == EM_key_CANCEL ){
			EA_ucCloseDevice(&hDevHandle);
			break;
		}
	}
	EA_ucCloseDevice(&hDevHandle);
	PubClearAll();
	PubDisplayCen(3 , "通 信 口");
	PubInitComm(&CommInfo, AUTOCHECK);
#ifdef TEST
	while(1)
	{
		PubDisplayCen(2, "这是测试是程序不能使");
		PubDisplayCen(3, "用在生产环境由此产生");
		PubDisplayCen(4, "的一切后果概不负责");
		EA_vBeepMs(200);
		if( PubuiInkey(1) == EM_key_FUNC )
			break;
	}
#endif
	return;
}
示例#2
0
文件: main.c 项目: 12019/zibogas
/******************************************************************************
 函数名称:print_work_note_history
 功能描述:打印日结算历史票据
 参数名称:输入/输出?	类型		描述
 输入		
 
 返  回  值:
 
 作      者	:于福勇
 日      期:2004-09-02
 修改历史:
		日期		修改人		修改描述
		------		---------	-------------
******************************************************************************/
void print_work_note_his(INT8U * rec)
{
	uchar       ucRet;
	INT8U		RecBuff[70];
	INT8U		strbuff[50];
	INT8U		time[7+2];


	_BANLANCE_IN_HAND * prec = (_BANLANCE_IN_HAND *)rec;

	EA_vCls();
	
	EA_vDisplay(1, "  历史日结帐单打印  ");//(int qx, int qy, char * ceStr, int xyFlag)
	EA_vDisplay(2, "       请等待...    ");//(int qx, int qy, char * ceStr, int xyFlag)
	SleepMs(1500);

	memset(RecBuff, 0, sizeof(RecBuff));

	ucRet = EA_ucGetPrinterStatus(hDprinterHandle);      //打印前必须判断打印机的状态
	if( ucRet == EM_prn_PAPERENDED )
	{
		EA_vCls();
		EA_vDisplay(1, "   缺纸,打印失败!  ");
		EA_vDisplay(2, "   请放入纸张后    ");
		EA_vDisplay(3, "   按确认任意键    ");
		EA_uiInkey(0);
	}
	if( ucRet == EM_prn_OVERHEAT )
	{
		EA_vDisplay(2, "    机芯温度过高    ");
		EA_vDisplay(3, "    请稍后再打印     ");
		EA_uiInkeyMs(500);
		return;
	}
	if( ucRet == EM_prn_LOWVOL )
	{
		EA_vDisplay(2, "    电池电量过低    ");
		EA_vDisplay(3, "   请充电后再打印   ");
		EA_uiInkeyMs(500);
		return;
	}

	(void)EA_ucPrinterAutoFeeding(hDprinterHandle);
///打印头
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"淄博市公共汽车公司\r\n");
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"日结帐单历史记录\r\n");
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"------------------------------\r\n");
//消费次数
	sprintf((void *)strbuff, "天然气加气次数 :%6d次\r\n", prec->consume_cnt[0]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油93#加油次数:%6d次\r\n", prec->consume_cnt[1]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油97#加油次数:%6d次\r\n", prec->consume_cnt[2]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "柴油加油次数   :%6d次\r\n", prec->consume_cnt[3]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"------------------------------\r\n");
//消费体积
	sprintf((void *)strbuff, "天然气体积 :%6.2lf元\r\n", (double)(prec->consume_cap[0])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油93#体积:%6.2lf元\r\n", (double)(prec->consume_cap[1])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油97#体积:%6.2lf元\r\n", (double)(prec->consume_cap[2])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "柴 油 体 积:%6.2lf元\r\n", (double)(prec->consume_cap[3])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"------------------------------\r\n");
//消费金额
	sprintf((void *)strbuff, "天然气金额 :%6.2lf元\r\n", (double)(prec->consume_amt[0])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油93#金额:%6.2lf元\r\n", (double)(prec->consume_amt[1])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "汽油97#金额:%6.2lf元\r\n", (double)(prec->consume_amt[2])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	sprintf((void *)strbuff, "柴 油 金 额:%6.2lf元\r\n", (double)(prec->consume_amt[3])/100);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"------------------------------\r\n");
	sprintf((void *)strbuff, "总  金  额 :%6.2lf元\r\n", (double)(prec->consume_amt[0]+prec->consume_amt[1]+prec->consume_amt[2]
															+prec->consume_amt[3])/100);

	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)"------------------------------\r\n");

//上班时间	
	memcpy(time, (INT8U*)&prec->work_datetime, 7);
	sprintf((void *)strbuff, "上班时间:\r\n");
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char*)strbuff);
	sprintf((void *)strbuff, "%02X%02X-%02X-%02X %02X:%02X:%02X\r\n", time[0],time[1],time[2],time[3],time[4],time[5],time[6]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char*)strbuff);	
//下班时间
	memcpy(time, (INT8U*)&prec->down_datetime,7);
	sprintf((void *)strbuff, "下班时间:\r\n");
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char*)strbuff);
	sprintf((void *)strbuff, "%02X%02X-%02X-%02X %02X:%02X:%02X\r\n", time[0],time[1],time[2],time[3],time[4],time[5],time[6]);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char*)strbuff);	

//分行符号
	strcpy((void *)strbuff, "---------------------------------- \r\r\r");
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	
//设备编号
	htoa(RecBuff, &prec->equ_id[0], 3);
	sprintf((void *)strbuff, "设备编号  :%s\r\n", RecBuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
//商户号
	htoa(RecBuff, &prec->acnt_id[0], 2);
	sprintf((void *)strbuff, "站  点  号:%s\r\n", RecBuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
//操作员号
	htoa(RecBuff, &prec->oper_id[0], 1);
	sprintf((void *)strbuff, "加油员工号:%s\r\n", RecBuff);
	(void)EA_ucLinePrinter(hDprinterHandle, 0, (char *)strbuff);
	// 打印最后调用换页命令
	ucRet = EA_ucLinePrinter(hDprinterHandle, 0, "\f");
	if ( ucRet == EM_SUCCESS )
	{
		EA_vDisplay(2, "本次打印结束!");
		Beep(1000);
		EA_uiInkeyMs(2000);
	}
		
}