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

📄 icc.c

📁 税控收款机软件。包括底层驱动和上层的应用一起。是一个完整的税控收款机软件方案
💻 C
📖 第 1 页 / 共 3 页
字号:
    icc_buff[0]=0x00;
    icc_buff[1]=0xa4;
    icc_buff[2]=0;
    icc_buff[3]=0;
    icc_buff[4]=2;
    icc_buff[5]=0x2f;
    icc_buff[6]=0x02 ;
    
    icc_sam_in();
	if(stat!=0){return 1;}
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf9;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=8;

	memcpy(&icc_buff[5],pin_data,8);
	icc_sam_in();
	//if(stat!=0){return 2;}
    /*
	ES=0;
	for(i=0;i<length;i++)
	rs232_send_byte (icc_buff[i]);
    */
    if(!(sw1==0x61 && sw2==0x08))
	{
		stat=2;
		if(sw1==0x69 && sw2==0x83)
		{
			cls();
			DisHzLinYm("税控卡PIN锁定",Col1);
			DL();
			DL();
		}		
		return 2;
	}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;
	icc_sam_out();
	//if(stat!=0){return 3;}
    /*
	ES=0;
	for(i=0;i<length;i++)
	rs232_send_byte (icc_buff[i]);
    */
	if(!(sw1==0x90 && sw2==0x00)){stat=3;return 3;}

	memcpy(pin_data,icc_buff,0x08);

	icc_buff[0]=0xc0;
	icc_buff[1]=0xf7;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x16; 
	memcpy(&icc_buff[5],icctempp,0x16);
	icc_sam_in();
	//if(stat!=0){return 4;}
    
//	ES=0;
//	for(i=0;i<length;i++)
//	rs232_send_byte (icc_buff[i]);
    
	if(!(sw1==0x90 && sw2==0x00)){stat=1;return 1;}
    else return 0;
}

void issue_invoice(void)
{
    uchar lrc;
    icc_reset_sam();
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_sam_in();

	//Verify_FISCAL_PIN (校验使用口令)
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf9;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=8;

	memcpy(&icc_buff[5],pin_data,8);
	icc_sam_in();

    if(!(sw1==0x61 && sw2==0x08))
	{
		stat=2;
		if(sw1==0x69 && sw2==0x83)
		{
			cls();
			DisHzLinYm("税控卡PIN锁定",Col1);
			DL();
			DL();
		}
		return;
	}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;
	icc_sam_out();

	if(!(sw1==0x90 && sw2==0x00))
     {stat=3;return;}
	memcpy(pin_data,icc_buff,0x08);
	//ISSUE_Invoice1 (开票)
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf2;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x2c;
    lrc=compute_lrc(&inv_prn_cur_info.date[0],43);
    memcpy(&icc_buff[5],&inv_prn_cur_info.date[0],43);
    icc_buff[48]=lrc;
//	for(i=0;i<44;i++)
//	rs232_send_byte (icc_buff[i+5]);
	icc_sam_in();
//	ES=0;
//	for(i=0;i<length;i++)
//	rs232_send_byte (icc_buff[i]);

    if(!(sw1==0x61 && sw2==0x08))
     {stat=4;return;}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;
	icc_sam_out();

	if(!(sw1==0x90 && sw2==0x00))
     {stat=5;return;}
	memcpy(fiscal_code,icc_buff,0x08);
    memcpy(inv_prn_cur_info.fiscal_code,icc_buff,8);
    stat=0;return;
}

uchar daily_collect_sign(void)
{
    uchar lrc;
    icc_reset_sam();
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_sam_in();
	if(stat!=0){return 1;}

	icc_buff[0]=0xc0;
	icc_buff[1]=0xf9;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=8;
	memcpy(&icc_buff[5],pin_data,8);
	icc_sam_in();
	if(stat!=0){return 1;}

    if(!(sw1==0x61 && sw2==0x08))
	{stat=1;	
		if(sw1==0x69 && sw2==0x83)
		{
			cls();
			DisHzLinYm("税控卡PIN锁定",Col1);
			DL();
			DL();
		}
		return 1;
	}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;
	icc_sam_out();
	if(stat!=0){return 2;}
	if(!(sw1==0x90 && sw2==0x00)){stat=2;return 2;}
	memcpy(pin_data,icc_buff,0x08);
	icc_buff[0]=0xc0;
	icc_buff[1]=0xfb;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x41;
    lrc=compute_lrc(&inv_cur_day.date[0],64);
    memcpy(&icc_buff[5],&inv_cur_day.date[0],64);
    icc_buff[69]=lrc;
	icc_sam_in();	
	if(stat!=0){return 3;}
	if(!(sw1==0x61 && sw2==0x81)){stat=3;return 3;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x81;
	icc_sam_out();
	if(stat!=0){return 4;}
    if(!(sw1==0x90 && sw2==0x00)){stat=4;return 4;}
    stat=0;return 0;
    memcpy(inv_cur_day.sign_code,icc_buff,128);
}

uchar declare_fiscal(void)
{   
	uchar lrc,i;
    icc_reset() ;

	icc_buff[0]=0x00;//选择税控应用
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_in();
	if(stat!=0){return 1;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xb0;
	icc_buff[2]=0x82;
	icc_buff[3]=0x02;
	icc_buff[4]=8;
	icc_out();
	if(stat!=0){return 1;}
    //if(memcmp(icc_buff,Temp_All,8)!=0) {stat=1;return 1;}
	for(i=0;i<3;i++)
	{
		icc_buff[0]=0x00;
		icc_buff[1]=0xb2;
		icc_buff[2]=i;		//记录号
		icc_buff[3]=0x24;
		icc_buff[4]=220;
	
		icc_out();
		if(stat!=0){return 2;}
	    if(icc_buff[0]==0) break;
	}
	if(i==3){stat=2;return 2;}
    icc_reset_sam();
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_sam_in();
	if(stat!=0){return 3;}
    //Verify_FISCAL_PIN (校验使用口令)
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf9;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=8;
	memcpy(&icc_buff[5],pin_data,8);
	icc_sam_in();
	
	if(stat!=0){return 3;}
    if(!(sw1==0x61 && sw2==0x08))
	{
		stat=3;		
		if(sw1==0x69 && sw2==0x83)
		{
			cls();
			DisHzLinYm("税控卡PIN锁定",Col1);
			DL();
			DL();
		}
		return 3;
	}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;

	icc_sam_out();
	if(stat!=0){return 4;}
	if(!(sw1==0x90 && sw2==0x00)){stat=4;return 4;}
	memcpy(pin_data,icc_buff,0x08);
    
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x47;

    lrc=compute_lrc(&declare_data.st_date[0],0x46);
    memcpy(&icc_buff[5],&declare_data.st_date[0],70);
    icc_buff[75]=lrc;
	icc_sam_in();
	if(stat!=0){return 5;}
//	ES=0;
//	rs232_send_byte (sw1);
//	rs232_send_byte (sw2);

    if(!(sw1==0x61 && sw2==0x8e))
     {stat=5;return 5;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x8e;
	icc_sam_out();

	if(stat!=0){return 6;}
	if(!(sw1==0x90 && sw2==0x00))
     {stat=6;return 6;}
	memcpy(&declare_data.zc_total_sam,icc_buff,0x8d);
    declare_data.lrc=compute_lrc(declare_data.sam_id,0xdb);
	//p=declare_data.sam_id;
    /*	ES=0;
	for(i=0;i<0xdc;i++)
	rs232_send_byte (*p++);
	*/
	icc_buff[0]=0xc0;
	icc_buff[1]=0xe6;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0xdc;

    memcpy(&icc_buff[5],declare_data.sam_id,0xdc);
	icc_in();
	if(stat!=0){return 7;}
    //	ES=0;
	//for(i=0;i<length;i++)
	//rs232_send_byte (icc_buff[i]);
    //

	if(!(sw1==0x90 && sw2==0x00))
    {stat=7;return 7;}
    return 0;   
}

/*
uchar declare_fiscal(void)
{   
	uchar lrc;
    icc_reset() ;

	icc_buff[0]=0x00;//选择税控应用
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_in();
	if(stat!=0){return 1;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xb0;
	icc_buff[2]=0x82;
	icc_buff[3]=0x02;
	icc_buff[4]=8;
	icc_out();
	if(stat!=0){return 1;}
    if(memcmp(icc_buff,Temp_All,8)!=0) {stat=1;return 1;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xb2;
	icc_buff[2]=1;		//记录号
	icc_buff[3]=0x24;
	icc_buff[4]=220;

	icc_out();
	if(stat!=0){return 2;}
    if(icc_buff[0]==1) {stat=2;return 2;}
    icc_reset_sam();
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;

	icc_sam_in();
	if(stat!=0){return 3;}
    //Verify_FISCAL_PIN (校验使用口令)
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf9;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=8;
	memcpy(&icc_buff[5],pin_data,8);
	icc_sam_in();
	
	if(stat!=0){return 3;}
    if(!(sw1==0x61 && sw2==0x08))
	{
		stat=3;		
		if(sw1==0x69 && sw2==0x83)
		{
			cls();
			DisHzLinYm("税控卡PIN锁定",Col1);
			DL();
			DL();
		}
		return 3;
	}

	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x08;

	icc_sam_out();
	if(stat!=0){return 4;}
	if(!(sw1==0x90 && sw2==0x00)){stat=4;return 4;}
	memcpy(pin_data,icc_buff,0x08);
    
	icc_buff[0]=0xc0;
	icc_buff[1]=0xf4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x47;

    lrc=compute_lrc(&declare_data.st_date[0],0x46);
    memcpy(&icc_buff[5],&declare_data.st_date[0],70);
    icc_buff[75]=lrc;
	icc_sam_in();
	if(stat!=0){return 5;}
//	ES=0;
//	rs232_send_byte (sw1);
//	rs232_send_byte (sw2);

    if(!(sw1==0x61 && sw2==0x8e))
     {stat=5;return 5;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xc0;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0x8e;
	icc_sam_out();

	if(stat!=0){return 6;}
	if(!(sw1==0x90 && sw2==0x00))
     {stat=6;return 6;}
	memcpy(&declare_data.zc_total_sam,icc_buff,0x8d);
    declare_data.lrc=compute_lrc(declare_data.sam_id,0xdb);

	icc_buff[0]=0xc0;
	icc_buff[1]=0xe6;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=0xdc;

    memcpy(&icc_buff[5],declare_data.sam_id,0xdc);
	icc_in();
	if(stat!=0){return 7;}
    //	ES=0;
	//for(i=0;i<length;i++)
	//rs232_send_byte (icc_buff[i]);
    //

	if(!(sw1==0x90 && sw2==0x00))
    {stat=7;return 7;}
    return 0;   
}
*/
/*
uchar update_control(void)
{     
	uchar *p;
	icc_reset() ;
	//选择税控应用
	
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;
	
	icc_in();
	if(stat!=0){return 1;}

	icc_buff[0]=0x00;
	icc_buff[1]=0xb0;
	icc_buff[2]=0x82;
	icc_buff[3]=0x02;
	icc_buff[4]=8;
	icc_out();
	if(stat!=0){return 1;}
	if(memcmp(icc_buff,Temp_All,8)!=0) {stat=1;return 1;}
	icc_buff[0]=0x00;
	icc_buff[1]=0xb2;
	icc_buff[2]=1;
	icc_buff[3]=0x24;
	icc_buff[4]=220;
	icc_out();
	if(stat!=0){return 8;}
	if(memcmp(declare_temp,&icc_buff[13],4)>0) {stat=2;return 2;}
	//if(memcmp(span.ed_date,&icc_buff[13],4)>0) {stat=2;return 2;}
	icc_reset_sam();
	icc_buff[0]=0x00;
	icc_buff[1]=0xa4;
	icc_buff[2]=0;
	icc_buff[3]=0;
	icc_buff[4]=2;
	icc_buff[5]=0x2f;
	icc_buff[6]=0x02 ;
	icc_sam_in();
	if(stat!=0){return 2;}
	//Verify_FISCAL_PIN (校验使用口令)

⌨️ 快捷键说明

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