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

📄 appsjk.lst

📁 抄水表手持POS代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 223          uint  chkhe=0;
 224          //read  FAT
 225          if(read_ATMEL24C64(0x20,JCK_ROOT,tmp2)!=OK)             return KZ_ERR;
 226          if(read_ATMEL24C64(0x20,JCK_ROOTK,tmp3)!=OK)        return KZ_ERR;
 227          for(i=0;i<0x20;i++)     {if(tmp3[i]!=tmp2[i])   return KZ_ERR;  ;}
C51 COMPILER V6.23a  APPSJK                                                                09/03/2004 16:11:25 PAGE 5   

 228          _Calc_crc(CRC16,14,tmp2,crc);
 229          if((crc[0]!=tmp2[0x0e])||(crc[1]!=tmp2[0x0f]))  return KZ_NOA;
 230          _Calc_crc(CRC16,14,tmp2+0X10,crc);
 231          if((crc[0]!=tmp2[0x1e])||(crc[1]!=tmp2[0x1f]))  return KZ_NOA;
 232          
 233          if(((kz==KZ_SJK)||(kz==KZ_SJDYK))&&((tmp2[8]!='S')&&(tmp2[8]!='D')))    return KZ_ERR;
 234          //if((kz==KZ_SJDYK)&&(tmp2[8]!='D'))    return KZ_ERR;
 235          if((kz==KZ_TJK  )&&(tmp2[8]!='T'))      return KZ_ERR;
 236          
 237          if((kz==KZ_SJK)||(kz==KZ_SJDYK))
 238          {
 239                  for(i=0;i<4;i++)
 240                    {
 241                          jck[CC_ADDRINF+1+12+i   ]=tmp2[i        ];              //publishNo
 242                          jck[CC_ADDRINF+1+ 8+i   ]=tmp2[4+i      ];              //publishTime
 243                          jck[CC_ADDRINF+1+ 4+i   ]=tmp2[10+i     ];              //publishOperateSnr
 244                          jck[CC_ADDRINF+1+20+i   ]=tmp2[0x10+i];         //DriverName1
 245                          jck[CC_ADDRINF+1+24+i   ]=tmp2[0x14+i];         //DriverName2
 246                    }
 247                  for(i=0;i<3;i++)
 248                    {
 249                          jck[CC_ADDRINF+1+i              ]=tmp2[0x18+i];         //DriverNo
 250                          jck[CC_ADDRINF+1+16+i   ]=tmp2[0x1b+i];         //OperatorNo
 251                    }
 252                  jck[CC_ADDRINF+1+3              ]=0;
 253                  jck[CC_ADDRINF+1+19             ]=0;
 254          }
 255          if(kz==KZ_TJK)
 256          {
 257                  for(i=0;i<4;i++)
 258                    {
 259                          jck[CC_ADDRINF+1+ 0+i   ]=tmp2[i        ];              //publishNo//
 260                          jck[CC_ADDRINF+1+ 8+i   ]=tmp2[4+i      ];              //publishTime//
 261                          jck[CC_ADDRINF+1+ 4+i   ]=tmp2[10+i     ];              //publishOperateSnr//
 262                    }
 263                  for(i=0;i<3;i++)
 264                    {
 265                          jck[CC_ADDRINF+1+16+i   ]=tmp2[0x1b+i];         //OperatorNo//
 266                    }
 267                  jck[CC_ADDRINF+1+19             ]=0;                    //OperatorNo AT BYTE4=0;//
 268                  if(read_ATMEL24C64(0x20,JCK_PriceAddr0,tmp2)!=OK)  return KZ_ERR;
 269          //      os232(tmp2,0x20);
 270                  for(i=0;i<6;i++)
 271                          {
 272                           jck[CC_ADDRINF+1+20+i]=tmp2[i+0x00];//PriceGroup1Tab
 273                           jck[CC_ADDRINF+1+26+i]=tmp2[i+0x08];//PriceGroup2Tab
 274                           jck[CC_ADDRINF+1+32+i]=tmp2[i+0x10];//PriceGroup3Tab
 275                          }
 276                  _Calc_crc(CRC16,6,tmp2          ,crc);
 277                  if((crc[0]!=tmp2[0x06])||(crc[1]!=tmp2[0x07]))  return KZ_NOA;
 278                  _Calc_crc(CRC16,6,tmp2+8                ,crc);
 279                  if((crc[0]!=tmp2[0x0E])||(crc[1]!=tmp2[0x0F]))  return KZ_NOA;
 280                  _Calc_crc(CRC16,6,tmp2+0X10     ,crc);
 281                  if((crc[0]!=tmp2[0x16])||(crc[1]!=tmp2[0x17]))  return KZ_NOA;
 282          }
 283          return OK;
 284          }
 285          #endif
 286          */
 287          
 288          
 289          uchar ValidJCKROOT(uchar *tm)//检测CRC
C51 COMPILER V6.23a  APPSJK                                                                09/03/2004 16:11:25 PAGE 6   

 290          {
 291   1      uchar xdata crc[2]; //check CRC
 292   1      _Calc_crc(CRC16,14,tm,crc);
 293   1      if((tm[0x0e]!=crc[0])||(tm[0x0f]!=crc[1])) return NOK;
 294   1      _Calc_crc(CRC16,14,tm+0x10,crc);
 295   1      if((tm[0x1e]!=crc[0])||(tm[0x1f]!=crc[1])) return NOK;
 296   1      return OK;
 297   1      }
 298          /*
 299          #ifdef PRG_ValidSJKFAT
 300          uchar ValidSJKFAT(uchar *tm)//检测CRC
 301          {
 302          uchar crc[2]; //check CRC
 303          _Calc_crc(CRC16,6,tm,crc);//_oo232(0xb0),_os232(crc,2);
 304          if((crc[0]!=tm[ 6])||(crc[1]!=tm[ 7])) return NOK;
 305          //check range & other
 306          if(tm[0]!=(tm[2]^0xff)) return NOK;
 307          if(tm[1]!=(tm[3]^0xff)) return NOK; 
 308          if(tm[0]!=tm[4])        return NOK;
 309          if(tm[1]!=tm[5])        return NOK;
 310          if(((uint)tm[0]+(uint)tm[1]*256)>JCK_DATASIZE) return NOK;
 311          //_oo232(0x31);
 312          return OK;
 313          }
 314          #endif
 315          
 316          uchar ValidJCKINF(uchar *tm)//检测CRC
 317          {
 318          uchar xdata crc[2]; //check CRC
 319          _Calc_crc(CRC16,14,tm,crc);
 320          if((tm[0x0e]!=crc[0])||(tm[0x0f]!=crc[1])) return NOK;
 321          return OK;
 322          }
 323          
 324          uchar ValidTJKPRICE(uchar *tm)//检测CRC
 325          {
 326          uchar xdata crc[2]; //check CRC
 327          _Calc_crc(CRC16,6,tm,crc);
 328          if((tm[0x06]!=crc[0])||(tm[0x07]!=crc[1])) return NOK;
 329          _Calc_crc(CRC16,6,tm+0X08,crc);
 330          if((tm[0x0E]!=crc[0])||(tm[0x0F]!=crc[1])) return NOK;
 331          return OK;
 332          }
 333          
 334          uchar  hxz1,hxz2;//hxz1已读的黑匣子  hxz2未读的黑匣子
 335          
 336          extern void port_ini();
 337          
 338          void re_crc(uchar *crc,uchar *buffer,uint length, uchar *out)
 339          {
 340           uint len;
 341           uchar xdata buff[35]; //max==100
 342           len=length/32;
 343           buff[0]=crc[0];
 344           buff[1]=crc[1];
 345           memcpy(buff+2,buffer,32);
 346           _Calc_crc(CRC16,34,buff,out);
 347          
 348          }
 349          
 350          uchar ValidLenData(uchar *buff)
 351          {
C51 COMPILER V6.23a  APPSJK                                                                09/03/2004 16:11:25 PAGE 7   

 352          uchar xdata crc[2];
 353          
 354          _Calc_crc(CRC16,6,buff,crc);//_oo232(0xb0),_os232(crc,2);
 355          if((crc[0]!=buff[ 6])||(crc[1]!=buff[ 7])) return NOK;
 356          if(buff[CC_PHPB]!=CC_PB1)return NOK;
 357          if(buff[CC_PHPB+1]!=CC_PB2)return NOK;
 358          return OK; 
 359          }
 360          
 361          long ReadLen()
 362          {
 363          uchar xdata buff[9];
 364          int i;
 365          uint len=0;
 366          for(i=0;i<8;i++) buff[i]=_FlashByteRead(3 ,i );
 367          if(ValidLenData(buff)==OK) len=buff[2]+buff[3]*0x100;
 368          return len; 
 369          }
 370          
 371          uchar WriteLen(uint len) 
 372          {
 373          uchar xdata tmp[20];
 374          uchar i;
 375          
 376          memset(tmp,0,8);
 377          tmp[CC_PHPB]=CC_PB1;tmp[CC_PHPB+1]=CC_PB2;
 378          tmp[2]=(uchar)len;
 379          tmp[3]=(uchar)len>>8;
 380          _Calc_crc(CRC16, 6, tmp, tmp+6);
 381          i=_FlashSectormodfiy(3,tmp,0,8);
 382          return i;
 383          }
 384          
 385          uchar WriteLSZ(uchar *buff,uint beginaddr, uint length)
 386          {
 387          uint i;
 388          for(i=0;i<length;i++)
 389          {
 390           _FlashByteWrite(20 ,beginaddr+i ,buff[i]);
 391          }
 392          return OK;
 393          }
 394          
 395          uchar ValidFlow(uchar *tm)//检测CRC
 396          {
 397          uchar xdata crc[2]; //check CRC
 398          _Calc_crc(CRC8,7,tm,crc);
 399          if(tm[0x07]!=crc[0]) return NOK;
 400          return OK;
 401          }
 402          
 403          void display(char line,uchar *buff)
 404          {
 405           _Display(0,line-1,buff,strlen(buff));
 406          }
 407          
 408          void Test_loadin()
 409          {
 410          uint  xdata i,j,x=0,many_card,money,y=0,z=0,z1=0,out,cs;
 411          long len;
 412          float mon;
 413          unsigned int fp=0,fp1=0,len1,len2;
C51 COMPILER V6.23a  APPSJK                                                                09/03/2004 16:11:25 PAGE 8   

 414          //uchar cin=1;
 415          unsigned char price=0,m1,m2,ret1;
 416          unsigned long xx,yy,zz,CZJH,beginadd;//
 417          uchar xdata buffer[1000],tmp5[8]={0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
 418          uchar xdata tmp1[0x20],tmp2[0x20],tmp3[0x20],tmp4[0x20],str[20],key;
 419          char wit;
 420          
 421          gostart:
 422          _PORT_Init ();_Clr();
 423          _Display(0,1,"   正在检测      ",16);
 424          fp=0;
 425          //len=ReadLen();
 426          //if(len<0){  _PORT_Init (); _Clr(); _Display(0,1,"   内存错误       ",16); _getkeyb(); return; }
 427          //if(len>38000){ _PORT_Init ();_Clr();_Display(0,1,"   POS机已满     ",16); _getkeyb(); return;}
 428          //if(len>35000){ _PORT_Init (); _Clr(); _Display(0,1,"   POS机将满     ",16); _getkeyb();}
 429          
 430          do{
 431              _AT24C64_Init();
 432              if(_CheckCardIn()!=OK){_Display(0,1,"  请插入司机卡     ",16); _delay_1ms(10);}
 433              else 
 434                  {
 435                   _AT24C64_PowerOn(); _delay_1ms(50);
 436               if(CheckJCK()!=KZ_SJK){ _Display(0,1,"    非司机卡        ",16); }
 437                   else break;
 438                  }
 439              key=_GetKey(111);
 440                  if(key==KeyB_No){_AT24C64_PowerOff();return;}
 441            }while(key!=KeyB_No);
 442          _Display(0,1,"   OK               ",16); _getkeyb(); return; 
 443          _Clr();  money=0; many_card=0; mon=0;
 444               if(read_ATMEL24C64(0x8,JCK_FAT ,tmp1)!=OK) {fp=1;goto gobreak;}
 445                   if(read_ATMEL24C64(0x8,JCK_FATK,tmp2)!=OK) {fp=1;goto gobreak;}
 446                   m1=ValidSJKFAT(tmp1);m2=ValidSJKFAT(tmp2);
 447                   if((m1==OK)&&(m2==OK))          //修复卡
 448                     {
 449                  if(memcmp(tmp1,tmp2,8)!=0)
 450                       {if(write_ATMEL24C64(0x8,JCK_FATK,tmp1)!=OK) {fp=1;goto gobreak;}}
 451                        many_card=tmp1[0]+tmp1[1]*256;//many_card=tmp2[0]+tmp2[1]*256;
 452                      }
 453                   else if((m1!=OK)&&(m2==OK))
 454               {
 455                     if(write_ATMEL24C64(0x8,JCK_FAT,tmp2)!=OK)  {fp=1;goto gobreak;}
 456                     many_card=tmp2[0]+tmp2[1]*256;
 457                     }
 458                   else if((m1==OK)&&(m2!=OK))
 459                {
 460                     if(write_ATMEL24C64(0x8,JCK_FATK,tmp1)!=OK) {fp=1;goto gobreak;}
 461                     many_card=tmp1[0]+tmp1[1]*256;
 462                     }
 463                   else {fp=1;goto gobreak;}
 464          _Clr();
 465          if(read_ATMEL24C64(0x10,JCK_INF ,tmp4)!=OK) 

⌨️ 快捷键说明

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