⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jbprint.c

📁 电话PSTN线路上FSK处理软件。。。。。。。。。
💻 C
📖 第 1 页 / 共 2 页
字号:
 *****************************************************************************/
void Print_Fee(void)
{
 	bool fZero=0;
 	byte i,bByte,j=0;
 	byte *p;
 	p=(byte *)&lTotalTariff;
 	for(i=1;i<4;i++) 
 		aServer[i-1]=*(p+i);
 	BINConvBCD(3);
 	for(i=2;i<8;i++){
 		bByte=aServer[i];
 		if((i<5)&&(!fZero)&&(bByte==0))
			j++;
 		else{
 			WritePrintPort(bByte+0x30);
 			fZero=1;
 		}
 		if(i==5)
  			WritePrintPort(0x2E);
	}
	for(i=0;i<j;i++)
		WritePrintPort(0x20);
}	// End of Print_Fee()
/*void Print_Fee(void)
{
 	bool fStart;
 	byte data i,k,j=0;
 	ulint xdata lTemp;
    fStart=0;
    for(i=0,lTemp=100000;i<6;i++){
    	if(i==4)
    		WritePrintPort(0x2e);						// 打印小数点
    	k=(byte)((lTotalTariff/lTemp)%10);
    	lTemp/=10;

    	if((!fStart)&&(k>0))
    		fStart=1;
    	
    	if(fStart||(i>=3)){
    		k+=0x30;
    		WritePrintPort(k);
    	}
    	else
    		//k=0x20;
			j++;
    }
    for(i=0;i<j;i++)
    	WritePrintPort(0x20);
    
}*/	// End of Print_Fee()

/*****************************************************************************
 *
 *				函数名: uPrint
 *
 *				说  明: 微打打印驱动程序
 *
 *****************************************************************************/
void uPrint()
{
 	byte i;
	WritePrintPort(0x4E);
 	WritePrintPort(0x6F);
 	WritePrintPort(0x2E);
 	WritePrintPort(0x20);
 	PrintBillNo();
 	PrintSpace(8);
 	PrintDate();
 	if(fWorkMode)
 		i=6;
 	else 
 		i=1;	
 	PrintSpace(i);
 	PrintStartTime();
 	if(fWorkMode)
 		PrintSpace(8);
 	PrintCode(PASSI);
 	PrintTalkTime();
 	PrintSpace(8);
 	WritePrintPort(0x52);
 	WritePrintPort(0x4D);
 	WritePrintPort(0x42);
 	WritePrintPort(0x3A);	// RMB:
 	PrintSpace(1);
 	Print_Fee();
 	for(i=0;i<4;i++) 
 		WritePrintPort(0x0A);
} // End of uPrint()


bool PrintBaoBiao(void)			//lmt add 2001.3.13
{
	byte data i,j;
	byte data bFormValue;
	fPrnSure=1;
	if((bStatusWord==S_OLDLOCKWAIT)||(bStatusWord==S_OLDUNLOCKWAIT)||
	   (bStatusWord==S_NEWLOCKWAIT)||(bStatusWord==S_NEWUNLOCKWAIT))
	    cbDelay5MS=100;
	else
		cbDelay5MS=250;    
	fDelay5MS=0;
	fBusy=1;
	// 打印机的情况
    i=50;
    while(--i!=0){						// 80 ms
    	j=60;
    	while(--j!=0){
    		if(fDelay5MS)				
    			return FALSE;	
    		if(fDelay5MS||(cbDelay5MS==120)){
    			cbDelay5MS=180;
    			return FALSE;
    		}		
    		if(fBusy)
    			i=50;
    	}
    }	
	cbDelay5MS=180;
	fDelay5MS=0;
	PrinterInit(); 

	WritePrintPort(0x1b);					// 回纸
	WritePrintPort(0x6a);
	WritePrintPort(250);

	WritePrintPort(0x1b);					// 回纸
	WritePrintPort(0x6a);
	Page(6);
	i=XBYTE[PARA_59];
	Page(5);
	WritePrintPort(i);
	Print_CR(); 
	
	for(i=0;i<70;i++){
	 	bFormValue=aPrintForm[34][i];		// aSelfForm[i];
		if(bFormValue==ERRVALUE){
			fPrnSure=FALSE;
			break;
		}
		if(bFormValue==PRNEND){
			if(i==0) 
				fPrnSure=FALSE;
			break;
		}
		switch(bFormValue){
			case MONT:
				WritePrintPort('M');
				WritePrintPort('O');
				WritePrintPort('N');
				WritePrintPort('T');
				WritePrintPort('H');
				break;
			
			case TODAY:
				WritePrintPort('T');
				WritePrintPort('O');
				WritePrintPort('D');
				WritePrintPort('A');
				WritePrintPort('Y');
				break;
				
			case CLAS:
				WritePrintPort('C');
				WritePrintPort('L');
				WritePrintPort('A');
				WritePrintPort('S');
				WritePrintPort('S');
				break;
				
			case CALLS:
				WritePrintPort('C');
				WritePrintPort('A');
				WritePrintPort('L');
				WritePrintPort('L');
				WritePrintPort('S');
				break;
				
			case TIMES:
				WritePrintPort('T');
				WritePrintPort('I');
				WritePrintPort('M');
				WritePrintPort('E');
				WritePrintPort('S');
				break;
				
			case TOTAL:
				WritePrintPort('T');
				WritePrintPort('O');
				WritePrintPort('T');
				WritePrintPort('A');
				WritePrintPort('L');
				break;
				
			case IDD:
				WritePrintPort('I');
				WritePrintPort('D');
				WritePrintPort('D');
				break;
				
			case DDD:
				WritePrintPort('D');
				WritePrintPort('D');
				WritePrintPort('D');
				break;
				
			case LOCA:
				WritePrintPort('L');
				WritePrintPort('O');
				WritePrintPort('C');
				WritePrintPort('A');
				WritePrintPort('L');
				break;
				
			case DATE:
				WritePrintPort('D');
				WritePrintPort('a');
				WritePrintPort('t');
				WritePrintPort('e');
				WritePrintPort(0x3a);
				break;
				
			case FROM:
				WritePrintPort('F');
				WritePrintPort('r');
				WritePrintPort('o');
				WritePrintPort('m');
				break;
				
			case TO:
				WritePrintPort('T');
				WritePrintPort('o');
				break;
				
			case CLASSDATE:
				WritePrintPort(0x32);
				WritePrintPort(0x30);
				Page(6);
				j=XBYTE[DateAddress];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x2d);
				Page(6);
				j=XBYTE[DateAddress+1];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x2d);
				Page(6);
				j=XBYTE[DateAddress+2];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				break;
				
			case CLASSTARTTIME:
				Page(6);
				j=XBYTE[StartTimeAddress];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x3a);
				Page(6);
				j=XBYTE[StartTimeAddress+1];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x3a);
				Page(6);
				j=XBYTE[StartTimeAddress+2];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				break;
				
			case CLASSENDTIME:
				Page(6);
				j=XBYTE[EndTimeAddress];
				Page(5); 
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x3a);
				Page(6);
				j=XBYTE[EndTimeAddress+1];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x3a);
				Page(6);
				j=XBYTE[EndTimeAddress+2];
				Page(5);
				WritePrintPort((j>>4)+0x30);
				WritePrintPort((j&0x0f)+0x30);
				WritePrintPort(0x0d);
				break;
				
			case IDDOBJECT:
				bIDL=2;
				PrintObject();
				break;
				
			case DDDOBJECT:
				bIDL=1;
				PrintObject();
				break;
				
			case LOCALOBJECT:
				bIDL=0;
				PrintObject();
				break;
				
			case TOTALOBJECT:
				bIDL=3;
				PrintObject();
				break;
			
			case FEED:
				bFormValue=aPrintForm[34][++i];
				ESC_J(bFormValue);
				break;
				
			case PRINTCR:	
				Print_CR();
				break;
					
			default:
				PrintSpace(bFormValue);
				break;	
		}
		if(!fPrnSure) 
			break; 
	}
	ESC_J(250);
	ESC_J(250);
	AutoReadPara(73);
	ESC_J(bParaByte);
	Page(5);
	return fPrnSure;
}	
				
void PrintObject(void)				//lmt add 2001.3.13
{
	byte data i1,k1,j1;
	ulint xdata lTemp;
	uint xdata iTemp;
	bool fStart=0;
	for(j1=0;j1<3;j1++){
		if(bIDL==2)
			iAddress=MonthIDDAddress+15*j1;
		if(bIDL==1)
			iAddress=MonthDDDAddress+15*j1;
		if(bIDL==0)
			iAddress=MonthLOCALAddress+15*j1;
		ReadBytes(6,2);
		if(bIDL==3){
			iAddress=MonthIDDAddress+15*j1;
			ReadBytes(6,2);
			lTemp=iParaWord;
			iAddress=MonthDDDAddress+15*j1;
			ReadBytes(6,2);
			lTemp+=iParaWord;
			iAddress=MonthLOCALAddress+15*j1;
			ReadBytes(6,2);
			lTemp+=iParaWord;
			iParaWord=(uint)(lTemp);
		}
		ReadBytes(6,3);
		if(bIDL==3){
			iAddress=MonthIDDAddress+2+15*j1;
			ReadBytes(6,3);
			lTemp=lParaLWord;
			iAddress=MonthDDDAddress+2+15*j1;
			ReadBytes(6,3);
			lTemp+=lParaLWord;
			iAddress=MonthLOCALAddress+2+15*j1;
			ReadBytes(6,3);
			lTemp+=lParaLWord;
			lParaLWord=lTemp;
		}	
		fStart=0;			
		for(i1=0,iTemp=10000;i1<5;i1++){
			k1=(byte)((iParaWord/iTemp)%10);
			if(k1!=0){
				WritePrintPort(k1+0x30);
				fStart=1;
			}	
			else{
				if((i1!=4)&&(!fStart))
					WritePrintPort(0x20);
				else
					WritePrintPort(0x30);
			}
			iTemp=iTemp/10;
		}
		fStart=0;
		PrintSpace(1);
		for(i1=0,lTemp=100000;i1<6;i1++){
    		if(i1==4)
    			WritePrintPort(0x2e);						// 打印小数点
    		k1=(byte)((lParaLWord/lTemp)%10);
    		lTemp/=10;

    		if((!fStart)&&(k1>0))
    			fStart=1;
    	
    		if(fStart||(i1>=3)){
    			k1+=0x30;
    		}
    		else
    			k1=0x20;
	    	WritePrintPort(k1);
    	}
    	PrintSpace(4);
   	}
}			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -