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

📄 data.lst

📁 抄水表手持POS代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
             -;_S232Buf[CC_ADDRINF+3]=_R232Buf[CC_ADDRINF+3];_ComS232(4);
 219   4               break;
 220   4              }
 221   3              i++;if(i>90){_Clr();display(2, "连接中断        ");display(3, "下载失败        ");_GetChar();return;}
 222   3        }
 223   2        _pRecBuf=0;i=0;
 224   2       }
 225   1       _Clr();display(2, "下载完成        ");_GetChar();return;
 226   1      }
 227          
 228          void UploadToPos()
 229          {
 230   1      uchar page,ret1,err,bflag=0;
 231   1      ulong i,len1;
 232   1      long len;
 233   1      //ulong xdata sjkh1,je1,sjkh2,je2;
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 5   

 234   1      uint  beg_addr,x;
 235   1      uchar xdata key,uret,str[50],buff[33],xzdate[5];
 236   1      
 237   1      _GetTime(str);Data16ToData10(str,str);Date6ToDate4(str,xzdate);
 238   1      _pRecBuf=0;i=0;x=0;_Clr();
 239   1      do {
 240   2          _Display(0,1,"正在连接POS机   ",16);_Display(0,2,"按取消键退出    ",16);
 241   2               key=_GetKey(111);if(key==KeyB_No)return;
 242   2               uret = _ComR232();
 243   2              }while ( uret != CC_POSRFLOW );
 244   1      _Clr();
 245   1      len=ReadLen();
 246   1      //len=200;
 247   1      if(len<0){_Display(0,1,"   内存错误        ",16); _GetChar(); return;}
 248   1      _S232Buf[CC_ADDRINF]=CC_POSRFLOW;_S232Buf[CC_ADDRINF+1]=(uchar)len;_S232Buf[CC_ADDRINF+2]=(uchar)(len/0x10
             -0);_ComS232(3);
 249   1      if(len==0) { _Display(0,1,"POS机内无数据   ",16);_GetChar();return; }
 250   1      else 
 251   1      {
 252   2       _Display(0,1,"正在上传00%              ", 16);//sjkh1=0;sjkh2=0;je1=0;je2=0;
 253   2       while(1)
 254   2       {
 255   3        err=0;_pRecBuf=0;
 256   3        gostart:
 257   3        i=0;
 258   3        while(1){ //_delay_1ms(200);
 259   4           uret=_ComR232();
 260   4                if(uret==CC_DEL_LSZ)goto gobreak;
 261   4                if(uret==CC_POSRFLOW)break;
 262   4      //        i++;if(i>=300){if(bflag==1) goto gobreak;_Display(0,1,"    上传失败    ",16);_GetChar();return;}
 263   4                i++;if(i>80){if(err<5){_pRecBuf=0;i=0;err++;_delay_1ms(1000);goto gostart;}if(bflag==1) goto gobreak;_D
             -isplay(0,1,"    上传失败    ",16);_GetChar();return;}
 264   4                if(uret==CC_WHMD)
 265   4                {
 266   5                 _Display (0, 1, "上传完成100%        ",16);_Display(0,2,"正在下载黑名单  ",16);
 267   5                 str[0]=_FlashByteRead(HMDPAGE ,0);
 268   5                      x=(uint)_R232Buf[CC_ADDRINF+1]+(uint)_R232Buf[CC_ADDRINF+2]*0x100-1;
 269   5                      beg_addr=x*240;
 270   5                      _FlashSectormodfiyPage(HMDPAGE,_R232Buf+7,beg_addr,240);
 271   5                      _S232Buf[CC_ADDRINF]=CC_WHMD;_ComS232(1);_pRecBuf=0;bflag=1;
 272   5                }
 273   4      //        _delay_1ms(50);//_delay_10ms(33);
 274   4                }
 275   3        len1=(ulong)_R232Buf[CC_ADDRINF+1]+(ulong)_R232Buf[CC_ADDRINF+2]*0x100l;
 276   3        sprintf(str,"%02ld%%       ",(len1*5)*100/len);
 277   3        _Display(8,1,str,8);
 278   3        _S232Buf[CC_ADDRINF]=CC_POSRFLOW;_S232Buf[CC_ADDRINF+1]=(uchar)len1;_S232Buf[CC_ADDRINF+2]=(uchar)(len1/
             -0x100);
 279   3        len1=len1*5;
 280   3        for(i=0;i<5;i++)
 281   3        {
 282   4         page=((len1+i)*32)/PAGELENGTH;beg_addr=((len1+i)*32)%PAGELENGTH;
 283   4              _FlashRead(LSZPAGE+page,beg_addr,32,buff);
 284   4         ret1=ValidFlow(buff);
 285   4         if(ret1==OK)
 286   4               {
 287   5                memcpy(buff+4,xzdate,4);_Calc_crc(CRC16,30,buff,buff+30);
 288   5                memcpy(_S232Buf+CC_ADDRINF+3+i*32,buff,32);}
 289   4         else
 290   4              {
 291   5               _FlashRead(LSZPAGEBAK+page,beg_addr,32,buff);
 292   5               ret1=ValidFlow(buff);
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 6   

 293   5               if(ret1==OK)
 294   5                {
 295   6                      memcpy(buff+4,xzdate,4);_Calc_crc(CRC16,30,buff,buff+30);
 296   6                 memcpy(_S232Buf+CC_ADDRINF+3+i*32,buff,32);}
 297   5               else {memset(buff,0xff,32);memcpy(_S232Buf+CC_ADDRINF+3+i*32,buff,32);}
 298   5               }
 299   4              //ReadLSZ(page,beg_addr,_S232Buf+CC_ADDRINF+3+i*32);
 300   4        }
 301   3        _ComS232(165); 
 302   3        }
 303   2        gobreak:
 304   2       _S232Buf[CC_ADDRINF]=CC_DEL_LSZ;
 305   2       _ComS232(1);
 306   2       _Clr();if(bflag==1){_Display (0, 1, "上传完成100%        ",16);_Display(0,2,"正在下载黑名单  ",16);_delay
             -_1ms(500);} 
 307   2       _Display (0, 1, " 下载黑名单完成       ",16);_Display (0, 2, " 正在清空流水账        ",16);
 308   2       for(i=0;i<3;i++) {  if(InitLSZ()==OK) break; }
 309   2       if(i==3) { _Clr(); _Display (0, 2, "清空流水账错误        ",16); _GetChar(); }
 310   2       Clear_GLKFlag();
 311   2       _Display (0, 2, "    清空完成        ",16);_delay_10ms(50); BELL(1,2);_delay_10ms(30);BELL(1,2);_GetChar(
             -);
 312   2       }
 313   1      }
 314          
 315          void upload()
 316          {
 317   1      uchar page;
 318   1      ulong i;
 319   1      long len;
 320   1      uint  beg_addr,j,x;
 321   1      uchar xdata buffer[36],crc[2],key,uret,str[20];
 322   1      
 323   1      _pRecBuf=0;i=0;x=0;_Clr();
 324   1      do {
 325   2          _Display(0,1,"正在连接主机    ",16);_Display(0,2,"按取消键退出    ",16);
 326   2               key=_GetKey(111); if(key==KeyB_No)return;
 327   2               uret = _ComR232();
 328   2               i++;if(i>20){_pRecBuf=0;i=0;}
 329   2              }while ( uret != CC_PCRFLOW_SFPOS );
 330   1      _Clr();
 331   1      len=ReadLen();
 332   1      //len=1000;
 333   1      if(len<0){_Display(0,1,"   内存错误        ",16); _GetChar(); return;}
 334   1      if(len==0) {     
 335   2                  _S232Buf[CC_ADDRINF]=CC_PCRFLOW_SFPOS;
 336   2                  _ComS232(1);
 337   2                                      _Display(0,1,"POS机内无数据   ",16);_GetChar();return; }
 338   1      else 
 339   1      {
 340   2       _Display(0,1,"正在上传              ", 16);
 341   2       _oo232(CC_PB1);_oo232(CC_PB2);
 342   2       buffer[0]=0;buffer[1]=0;buffer[2]=CC_PCRFLOW_SFPOS; buffer[3]=(uchar)(len*32l%0x100l);
 343   2       buffer[4]=(uchar)(len*32l/0x100l);buffer[5]=(uchar)(len*32l/0x10000l);
 344   2       _os232(buffer,6);_Calc_crc(CRC16,6,buffer,crc);
 345   2       for (i=0;i<len;i++)
 346   2       {
 347   3        for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGE;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByteRead
             -(page ,beg_addr );}
 348   3        if(ValidFlow(buffer)!=OK)
 349   3         {for(j=0;j<32;j++){page=(i*32+j)/PAGELENGTH+LSZPAGEBAK;beg_addr=(i*32+j)%PAGELENGTH;buffer[j]=_FlashByt
             -eRead(page ,beg_addr );}}
 350   3        _os232(buffer,32);
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 7   

 351   3        re_crc(crc,buffer,32, crc);
 352   3        x=(i*100)/len;
 353   3        sprintf(str,"%02d%%       ",x);
 354   3        _Display(8,1,str,16);
 355   3       }
 356   2       _os232(crc,2);
 357   2       _Display(0,1,"正在上传100%    ",16);
 358   2       _pRecBuf=0;
 359   2       do {
 360   3           uret = _ComR232();
 361   3                for(i=0;i<30;i++) {uret = _ComR232();if((uret==CC_WHMD)||(uret==CC_DEL_LSZ))break; }  //                                 _delay_10
             -ms(50);
 362   3                if(i==30)_pRecBuf=0;
 363   3           if(uret==CC_WHMD)
 364   3                {
 365   4                  _Display (0, 1, "上传完成100%        ",16);_Display(0,2,"正在下载黑名单  ",16);
 366   4                       x=(uint)_R232Buf[CC_ADDRINF+1]+(uint)_R232Buf[CC_ADDRINF+2]*0x100-1;
 367   4                       beg_addr=x*240;
 368   4                       _FlashSectormodfiyPage(HMDPAGE,_R232Buf+7,beg_addr,240);
 369   4                       _S232Buf[CC_ADDRINF]=CC_WHMD;_ComS232(1);_pRecBuf=0;
 370   4                       _Display (0, 2, "下载黑名单完成  ",16);
 371   4                      }
 372   3           key=_GetKey(111);
 373   3           if(key==KeyB_No) return;
 374   3           }while(uret != CC_DEL_LSZ);
 375   2       _ComS232(1);
 376   2       _Clr(); _Display (0, 2, "正在清空流水账        ",16);
 377   2       for(i=0;i<3;i++) {  if(InitLSZ()==OK) break; }
 378   2       if(i==3) { _Clr(); _Display (0, 2, "清空流水账错误        ",16); _GetChar(); }
 379   2       Clear_GLKFlag();
 380   2       _Clr(); _Display (0, 2, "清空完成        ",16);_delay_10ms(50);BELL(1,2);_delay_10ms(30);BELL(1,2); _GetC
             -har();
 381   2       }
 382   1      }
 383          
 384          void SET_SBH()
 385          {
 386   1       uchar xdata buff[8],tmp[9],i;
 387   1       ulong sbh;
 388   1       uchar ret;
 389   1      gostart:
 390   1       _Clr();
 391   1       display(1, "***设置设备号***" );
 392   1       display(2, " 请输入5个以内");
 393   1       display(3, "      数字:");
 394   1       memset(buff,0,sizeof(buff));
 395   1      display(4, "                  ");
 396   1       ret=_GetStr(0,3,buff,7);
 397   1       sbh=0;
 398   1       if(ret>0)
 399   1       {
 400   2        for(i=0;i<ret;i++)
 401   2        {
 402   3         if((buff[i]>='0')&&(buff[i]<='9'))
 403   3              {
 404   4               sbh=sbh*10+buff[i]-0x30;
 405   4              }
 406   3              else{display(4, "    非法数据    ");_GetChar();goto gostart;}
 407   3        }
 408   2       if(sbh>65535){_Clr();_Display(0,1,"输入数据数值太大",16);_Display(0,2,"请重新输入      ",16);_GetChar();g
             -oto gostart;}
 409   2       memset(tmp,0,8);
C51 COMPILER V6.23a  DATA                                                                  01/13/2006 09:40:04 PAGE 8   

 410   2       tmp[CC_PHPB]=CC_PB1;tmp[CC_PHPB+1]=CC_PB2;
 411   2       tmp[2]=(uchar)sbh;
 412   2       tmp[3]=(uchar)(sbh/0x100);
 413   2      // tmp[4]=(uchar)(sbh/0x10000);
 414   2       memcpy(SBH,tmp+2,2);
 415   2       _Calc_crc(CRC16, 6, tmp, tmp+6);
 416   2        //oo232(0xaa);oo232(0xbb);os232(tmp,8);oo232(0xcc);oo232(0xdd);
 417   2       _FlashSectormodfiy(LENPAGE,tmp,SBHADDR,8);
 418   2       _delay_1ms(300);
 419   2       _FlashSectormodfiy(LENPAGEBAK,tmp,SBHADDR,8);
 420   2       _delay_1ms(300);
 421   2       }
 422   1       sbhflag=OK;
 423   1       return;
 424   1      }
 425          
 426          void DISPLAY_SBH()
 427          {
 428   1       uchar xdata i,buff[9],buff1[9],buffer[16]="设备号:";
 429   1       uchar ret1=0,ret2=0;
 430   1       ulong sbh;
 431   1      sbhflag=OK;
 432   1      for(i=0;i<8;i++) buff[i]=_FlashByteRead(LENPAGE ,i+SBHADDR );
 433   1      ret1=ValidData(buff);
 434   1      for(i=0;i<8;i++) buff1[i]=_FlashByteRead(LENPAGEBAK ,i+SBHADDR );//FlashRead(LENPAGEBAK,SBHADDR,8,buff1);
 435   1      ret2=ValidData(buff1);
 436   1      if((ret1==OK)&&(ret2==OK)) {memcpy(SBH,buff+2,2);sbh=buff[2]+(ulong)buff[3]*0x100l;sprintf(buffer,"设备号:
             -%05ld",sbh);display(3,buffer);}
 437   1      else if((ret1==OK)&&(ret2!=OK)){memcpy(SBH,buff+2,2);sbh=buff[2]+(ulong)buff[3]*0x100l;sprintf(buffer,"设

⌨️ 快捷键说明

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