📄 data.lst
字号:
-;_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 + -