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

📄 sk.c

📁 本程序在S3C44B0 uClinux的嵌入式GUI
💻 C
📖 第 1 页 / 共 5 页
字号:
  return err;}//---------------------------------------------------------------------------//向用户卡 登记发票汇总联//ESC,CMD81,SUB93,LEN=5,CheckSum//ESC,CMD81,SUB93,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int RegisterBillRollCollect(void){  int err=0;  unsigned char register_bill_collect_command[] = {0x1b,0x81,0x93,5,0,0};  unsigned char return_buf[20];  memset(return_buf,0x0,20);  err = SendCommand(register_bill_collect_command,register_bill_collect_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//0x94  //按 发票打印日期 查找发票流水记录位置  CCYYMMDD  //将 发票打印日期 存在 EepromAdd_15  //返回时:EepromAdd_4_2 参数返回区 (长度:16)->发票记录位置//ESC,CMD81,SUB94,LEN=5,CheckSum//ESC,CMD81,SUB94,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 按 发票打印日期 查找发票流水记录位置//参数: lookupDate: 需要查找发票的使用日期  参数类型:4个字节BCD格式日期 "CCYYMMDD"//返回: =0:操作成功 !=0:见错误对照表int LookupBillDate(unsigned char *lookupDate)   {  int err=0;  unsigned char bill_date_lookup_command[] = {0x1b,0x81,0x94,5,0,0};  unsigned char return_buf[20];  err = WriteEeprom(EepromAdd_15,4,lookupDate);  //将 发票打印日期 存在 Eeprom_15  if(err)  return err;  err = SendCommand(bill_date_lookup_command,bill_date_lookup_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//0x95  //按 按 发票号 查找发票流水记录位置 long 4  //将 发票号 存在 Eeprom_15  //返回时:EepromAdd_4_2 参数返回区 (长度:16)->发票记录位置//ESC,CMD81,SUB95,LEN=5,CheckSum//ESC,CMD81,SUB95,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 按 发票号 查找发票流水记录位置//参数: lookupBillNumber: 查找发票的发票号  参数类型:4个字节长的十六进制数值//返回: =0:操作成功 !=0:见错误对照表int LookupBill(unsigned char *lookupBillNumber){  int err=0;  unsigned char bill_lookup_command[] = {0x1b,0x81,0x95,5,0};  unsigned char return_buf[20];  err = WriteEeprom(EepromAdd_15,4,lookupBillNumber);  //将 发票打印日期 存在 Eeprom_15  if(err)  return err;  err = SendCommand(bill_lookup_command,bill_lookup_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//0x96  //按 纳税申报 年月 查找 纳税申报记录位置 CCYYMM  //将 年月 存在 Eeprom_15  //返回时:EepromAdd_4_2 参数返回区 (长度:16)->纳税申报记录位置//ESC,CMD81,SUB96,LEN=5,CheckSum//ESC,CMD81,SUB96,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 按 纳税申报 年月 查找 纳税申报记录位置 CCYYMM//参数: lookupDeclareDate: 查找报税信息的日期  类型: 3个字节BCD//返回: =0:操作成功 !=0:见错误对照表int LookupDeclare(unsigned char *lookupDeclareDate){  int err=0;  unsigned char declare_lookup_command[] = {0x1b,0x81,0x96,5,0};  unsigned char return_buf[20];  err = WriteEeprom(EepromAdd_15,3,lookupDeclareDate);  //将 年月 存在 Eeprom_15  if(err)  return err;  err = SendCommand(declare_lookup_command,declare_lookup_command[3],return_buf);  //发送命令  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }    usleep(500);  return err;}//---------------------------------------------------------------------------//0x97  //按 日期查找 日累计记录 位置  //将 日期 存在 Eeprom_15 CCYYMMDD  //返回时:EepromAdd_4_2 参数返回区 (长度:16)->日累计记录位置//ESC,CMD81,SUB97,LEN=5,CheckSum//ESC,CMD81,SUB97,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 按 日期查找 日累计记录 位置//参数: lookupDate: 查找日累计信息的日期  类型: 4个字节BCD//返回: =0:操作成功 !=0:见错误对照表int LookupDayAddup(unsigned char *lookupDate){  int err=0;  unsigned char dayAddup_lookup_command[] = {0x1b,0x81,0x97,5,0};  unsigned char return_buf[20];  err = WriteEeprom(EepromAdd_15,4,lookupDate);  //将 年月 存在 Eeprom_15  if(err)  return err;  err = SendCommand(dayAddup_lookup_command,dayAddup_lookup_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//整理发票汇总数据//ESC,CMD81,SUB98,LEN=5,CheckSum//ESC,CMD81,SUB98,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int CleanupBillRollCollectData(void){  int err=0;  unsigned char Cleanup_bill_collect_command[] = {0x1b,0x81,0x98,5,0,0};  unsigned char return_buf[20];  memset(return_buf,0x0,20);  err = SendCommand(Cleanup_bill_collect_command,Cleanup_bill_collect_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  return err;}//---------------------------------------------------------------------------//0x0E//保存eeprom->Flash_EepromSaveZone_1K//ESC,CMD81,SUB0E,LEN=5,CheckSum//ESC,CMD81,SUB0E,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int BackEepromToFlash(void){  int err=0;  unsigned char back_eeprom_command[] = {0x1b,0x81,0x0e,5,0,0};  unsigned char return_buf[20];  err = SendCommand(back_eeprom_command,back_eeprom_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }    usleep(500);  return err;}//---------------------------------------------------------------------------//恢复eeprom<-Flash_EepromSaveZone_1K//ESC,CMD81,SUB0F,LEN=5,CheckSum//ESC,CMD81,SUB0F,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int ResumeEepromData(void){  int err=0;  unsigned char Resum_eeprom_data_command[] = {0x1b,0x81,0x0f,5,0,0};  unsigned char return_buf[20];  err = SendCommand(Resum_eeprom_data_command,Resum_eeprom_data_command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//写7年日累计日期//ESC,CMD81,SUB99,LEN=5,CheckSum//ESC,CMD81,SUB99,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int WriteSeverYearDate(void){  int err=0;  unsigned char command[] = {0x1b,0x81,0x99,5,0,0};  unsigned char return_buf[20];  err = SendCommand(command,command[3],return_buf);  //接收数据  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//'SM'卡解锁//ESC,CMD81,SUB0F9a,LEN=5,CheckSum//ESC,CMD81,SUB0F,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int SMCardDisentangleBlank(void){  int err=0;  unsigned char command[] = {0x1b,0x81,0x9a,5,0,0};  unsigned char return_buf[20];  err = SendCommand(command,command[3],return_buf);  //发送命令  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//一张管理卡不能稽查完数据时 插入后续的管理卡//ESC,CMD81,SUB0F9b,LEN=5,CheckSum//ESC,CMD81,SUB0F,LEN=6,err,CheckSum ->0:成功; !=0:见错误表int GLCardBackCard(void){  int err=0;  unsigned char command[] = {0x1b,0x81,0x9b,5,0,0};  unsigned char return_buf[20];  err = SendCommand(command,command[3],return_buf);  //发送命令  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//---------------------------------------------------------------------------//2004-04-02 sm add 以下为税控测试准备新加//===========================================================================//税务管理卡口令验证(先将税务管理卡口令保存在 EepromAdd_16 中)//ESC,CMD81,SUBA0,LEN=5,CheckSum//ESC,CMD81,SUBA0,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 税务管理卡口令验证int GLCardPasswordValidate(void){  int err;  char command[] = {0x1b,0x81,0xa0,5,0,0};  char return_buf[20];  err = SendCommand(command,command[3],return_buf);  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//===========================================================================//ESC,CMD81,SUBA1,LEN=5,CheckSum//ESC,CMD81,SUBA1,LEN=6,ChkLevel,ChecSum ->ChkLevel==01--FF:成功; ChkLevel==0:错误//功能: 读出税务管理卡核查级别//注意: 此命令返回值和其它命令不同!!!int ReadGLCardLevel(unsigned char *GL_level){  int err;  char command[] = {0x1b,0x81,0xa1,5,0,0};  char return_buf[20];  err = SendCommand(command,command[3],return_buf);  if(!err)    *GL_level = return_buf[4];  //管理卡核查级别  usleep(500);  return err;}//===========================================================================//ESC,CMD81,SUBA2,LEN=5,CheckSum//ESC,CMD81,SUBA2,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 读出用户卡基本信息文件(用于改名)int ReadYHCardBaseInfoFile(void){  int err;  char command[] = {0x1b,0x81,0xa2,5,0,0};  char return_buf[20];  err = SendCommand(command,command[3],return_buf);  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//===========================================================================//稽查时自动调整稽查条数  (先将税务管理卡稽查参数保存在 FlashromAdd_17 中,格式同0x9b:继续 写 税务管理卡)//ESC,CMD81,SUBA3,LEN=5,CheckSum//ESC,CMD81,SUBA3,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//根据实际记录条数,调整用户稽查参数 ( 在用户输入稽查参数后,实施稽查前调用 )//函数返回 -1-> 日期参数不正确( 日期小于起始日,或大于当前日 )int AdjustCheckingCount(void){  int err;  char command[] = {0x1b,0x81,0xa3,5,0,0};  char return_buf[20];  err = SendCommand(command,command[3],return_buf);  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//===========================================================================//按发票号:查询电子存根+发票流水//查询的发票号,预先存放在 EepromAdd_15 中//ESC,CMD81,SUBA4,LEN=5,CheckSum//ESC,CMD81,SUBA4,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//返回时:EepromAdd_4_2->发票流水地址;EepromAdd_4_2+4->电子存根地址//功能: 查询已经使用的发票信息及打印明细int QueryAlreadyUseBillInfo(void){  int err;  char command[] = {0x1b,0x81,0xa4,5,0,0};  char return_buf[20];  err = SendCommand(command,command[3],return_buf);  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//===========================================================================//将 发票流水记录 标记 退货标志 ( 流水记录的第28字节 ),为标记原发票记录//ESC,CMD81,SUBA5,LEN=5+4,RecAddr[4],CheckSum//ESC,CMD81,SUBA5,LEN=6,err,CheckSum ->0:成功; !=0:见错误表//功能: 写原发票退货标志int WriteReturnBaleFlag(unsigned long address){  int err;  char command[] = {0x1b,0x81,0xa5,5+4,0,0,0,0,0,0,0,0,};  char return_buf[20];  memmove(&command[4],(unsigned char *)&address,4);  err = SendCommand(command,command[3],return_buf);  if(err || return_buf[4])  { if(err)  return err;    else     return return_buf[4];  }  usleep(500);  return err;}//以上为2004.4.4增加内容//===========================================================================//开票预处理//ESC,CMD81,SUBA6,LEN=5+4,CurDate[4],CheckSum//ESC,CMD81,SUBA6,LEN=6+11,err,//税控标志(长度:1),当前发票号(长度:4),发票截至号(长度:4),发票流水存储计数器(长度:2),//CheckSum ->0:成功; !=0:见错误表//参数: BCD_now_date:BCD格式的当前系统日期(4Byte)int Pretreatment_TaxCtrBalance(unsigned char *BCD_now_date,unsigned char *balance_setout_info){  unsigned int err;  char command[] = {0x1b,0x81,0xa6,5+4,0,0,0,0,0,0,0,0,};  char return_buf[100];  memmove(&command[4],BCD_now_date,4);  err = SendCommand(command,command[3],return_buf);  if(err)    return err;  if(return_buf[4])    err = return_buf[4];  else    memmove(balance_setout_info,&return_buf[5],11);    return err;}//===========================================================================//送开票数据//ESC,CMD81,SUBA7,LEN=5+43+4,开票结构(LEN=43),原发票号(LEN=4),CheckSum//ESC,CMD81,SUBA7,LEN=6,err,CheckSum    见err表//功能: 开票时发送开票数据i

⌨️ 快捷键说明

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