📄 process.lst
字号:
496 1 {
497 2 cr_cfg[i]=0;
498 2 new_cfg[i]=0;
499 2 }
500 1
501 1 if((RecBuf[7]>=0x30)&&(RecBuf[7]<=0x39)&&
502 1 (RecBuf[8]>=0x30)&&(RecBuf[8]<=0x39)&&
503 1 (RecBuf[9]>=0x30)&&(RecBuf[9]<=0x39))
504 1 {
505 2
506 2 /*-----------设置最小采集时间---------------*/
507 2 if((RecBuf[7]<=0x30)&&(RecBuf[8]<=0x30)&&(RecBuf[9]<0x31))
508 2 {
509 3 RecBuf[7]=0x30;
510 3 RecBuf[8]=0x30;
511 3 RecBuf[9]=0x31;
512 3 }
513 2 else if((RecBuf[7]>=0x37)&&(RecBuf[8]>=0x32)&&(RecBuf[9]>=0x30))
514 2 {
515 3 RecBuf[7]=0x37;
516 3 RecBuf[8]=0x32;
517 3 RecBuf[9]=0x30;
518 3 }//-----------设置最大采集时间---------------//
519 2
520 2 switch(RecBuf[3])
521 2 {
522 3 case 1 :
523 3 i2c_addr=i2c_addr_rainconfig;
524 3 for(i=0;i<3;i++)
525 3 cr_cfg[i]=RecBuf[7+i];
526 3
527 3 /*-----------更改雨量采集时间---------------*/
528 3 rain_cfg=CHAR_TO_INT(cr_cfg,3);
529 3 break;
530 3
531 3 case 2 :
532 3 i2c_addr=i2c_addr_levelconfig;
533 3 for(i=0;i<3;i++)
534 3 cr_cfg[i]=RecBuf[7+i];
535 3
536 3 /*-----------更改水位采集时间---------------*/
537 3 level_cfg=CHAR_TO_INT(cr_cfg,3);
538 3 break;
539 3 }
540 2
541 2 /*-----------查找当前值并写入修改后的值---------------*/
542 2 R_block(WPAGE0,RPAGE0,i2c_addr,cr_cfg,3);
543 2 if((cr_cfg[0]&0x80)==0x80)
544 2 {
545 3 for(i=0;i<3;i++)
546 3 new_cfg[i]=RecBuf[7+i];
547 3 new_cfg[0]|=0x80;
548 3 W_block(WPAGE1,i2c_addr,new_cfg,3);
549 3 wait_1ms();
550 3
551 3 cr_cfg[0]&=0x7f;
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 10
552 3 W_block(WPAGE0,i2c_addr,cr_cfg,3);
553 3 }
554 2 else
555 2 {
556 3 for(i=0;i<3;i++)
557 3 new_cfg[i]=RecBuf[7+i];
558 3 new_cfg[0]|=0x80;
559 3 W_block(WPAGE0,i2c_addr,new_cfg,3);
560 3 wait_1ms();
561 3
562 3 R_block(WPAGE1,RPAGE1,i2c_addr,cr_cfg,3);
563 3 cr_cfg[0]&=0x7f;
564 3 W_block(WPAGE1,i2c_addr,cr_cfg,3);
565 3 }
566 2 cl_ack_ct(RecBuf[5],RecBuf[3],1);
567 2 }
568 1 return 1;
569 1 }
570
571
572
573 /*******************************************************************
574 读配置函数
575 函数原型:char Rd_cfg(void)
576 功 能:
577
578 ********************************************************************/
579 char Rd_cfg(void)
580 {
581 1 uchar i;
582 1 uchar cr_cfg[3];
583 1 cs=0;
584 1
585 1 switch(RecBuf[3])
586 1 {
587 2 case 1 :
588 2 i2c_addr=i2c_addr_rainconfig;
589 2 SenBuf[3]=0x01;
590 2 break;
591 2 case 2 :
592 2 i2c_addr=i2c_addr_levelconfig;
593 2 SenBuf[3]=0x02;
594 2 break;
595 2 }
596 1
597 1 /*-----------查找当前值---------------*/
598 1 R_block(WPAGE0,RPAGE0,i2c_addr,cr_cfg,3);
599 1 if((cr_cfg[0]&0x80)!=0x80)
600 1 {
601 2 R_block(WPAGE1,RPAGE1,i2c_addr,cr_cfg,3);
602 2 }
603 1 cr_cfg[0]&=0x7f;
604 1
605 1 SenBuf[5]=(RecBuf[5]|0x80);
606 1 SenBuf[6]=0x03;
607 1
608 1 strncpy(&SenBuf[7],cr_cfg,3);
609 1
610 1 for(i=0;i<SenBuf[6]+7;i++)
611 1 cs+=SenBuf[i];
612 1
613 1 SenBuf[SenBuf[6]+7]=cs;
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 11
614 1 SenBuf[SenBuf[6]+8]=FRAME_END_CHAR;
615 1 Senlen=SenBuf[6]+9;
616 1
617 1 return 1;
618 1 }
619
620
621 /*******************************************************************
622 写配置条件函数
623 函数原型: char Wr_Conditions(void)
624 功 能:
625
626 ********************************************************************/
627 char Wr_Conditions(void)
628 {
629 1 unsigned char i,j;
630 1 unsigned char xdata cd_cfg[11][10],new_cd[11][10];
631 1
632 1 cs=0;
633 1
634 1 for(i=0;i<11;i++)
635 1 for(j=0;j<10;j++)
636 1 {
637 2 cd_cfg[i][j]=0x00;
638 2 new_cd[i][j]=0x00;
639 2 }
640 1
641 1 for(i=0;i<RecBuf[6]/10;i++)
642 1 for(j=0;j<10;j++)
643 1 {
644 2 new_cd[i][j]=RecBuf[9+j+10*i];
645 2 }
646 1
647 1
648 1 switch(RecBuf[3])
649 1 {
650 2 case 1 :
651 2 i2c_addr=i2c_addr_rnct;
652 2 for(i=0;i<11;i++)
653 2 {
654 3 rain_cd[i].cd_time=0;
655 3 rain_cd[i].cd_data=0;
656 3 }
657 2 //-----------更改雨量门限---------------//
658 2 for(i=0;i<11;i++)
659 2 {
660 3 rain_cd[i].cd_time=CHAR_TO_LONG(&new_cd[i][0],4);
661 3 rain_cd[i].cd_data=CHAR_TO_LONG(&new_cd[i][4],6);
662 3 }
663 2 new_cfg=1;
664 2 break;
665 2
666 2 case 2 :
667 2 i2c_addr=i2c_addr_lvct;
668 2 for(i=0;i<11;i++)
669 2 {
670 3 level_cd[i].cd_time=0;
671 3 level_cd[i].cd_data=0;
672 3 }
673 2 //-----------更改水位门限---------------//
674 2 for(i=0;i<11;i++)
675 2 {
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 12
676 3 level_cd[i].cd_time=CHAR_TO_LONG(&new_cd[i][0],4);
677 3 level_cd[i].cd_data=CHAR_TO_LONG(&new_cd[i][4],6);
678 3 }
679 2 new_cfg=2;
680 2 break;
681 2
682 2 }
683 1
684 1 //-----------查找当前值并写入修改后的值---------------//
685 1 R_block(WPAGE2,RPAGE2,i2c_addr,&cd_cfg[0][0],110);
686 1 if((cd_cfg[0][0]&0x80)==0x80)
687 1 {
688 2 new_cd[0][0]|=0x80;
689 2
690 2 W_block(WPAGE3,i2c_addr,&new_cd[0][0],110);
691 2 wait_1ms();
692 2 cd_cfg[0][0]&=0x7f;
693 2 W_block(WPAGE2,i2c_addr,&cd_cfg[0][0],110);
694 2 }
695 1 else
696 1 {
697 2 new_cd[0][0]|=0x80;
698 2
699 2 W_block(WPAGE2,i2c_addr,&new_cd[0][0],110);
700 2 wait_1ms();
701 2 R_block(WPAGE3,RPAGE3,i2c_addr,&cd_cfg[0][0],110);
702 2 cd_cfg[0][0]&=0x7f;
703 2 W_block(WPAGE3,i2c_addr,&cd_cfg[0][0],110);
704 2 }
705 1 cl_ack_ct(RecBuf[5],RecBuf[3],1);
706 1 return 1;
707 1 }
708
709
710
711 /*******************************************************************
712 读配置条件函数
713 函数原型:char Rd_Conditions(void)
714 功 能:
715
716 ********************************************************************/
717 char Rd_Conditions(void)
718 {
719 1 uchar i,j;
720 1 int k=0;
721 1 unsigned char xdata cr_cd[11][10];
722 1
723 1 cs=0;
724 1
725 1 for(i=0;i<11;i++)
726 1 for(j=0;j<10;j++)
727 1 {
728 2 cr_cd[i][j]=0x00;
729 2 }
730 1
731 1 switch(RecBuf[3])
732 1 {
733 2 case 1 :
734 2 i2c_addr=i2c_addr_rnct;
735 2 SenBuf[3]=0x01;
736 2 break;
737 2 case 2 :
C51 COMPILER V7.50 PROCESS 10/08/2006 08:51:41 PAGE 13
738 2 i2c_addr=i2c_addr_lvct;
739 2 SenBuf[3]=0x02;
740 2 break;
741 2 }
742 1
743 1 R_block(WPAGE2,RPAGE2,i2c_addr,&cr_cd[0][0],110);
744 1 wait_1ms();
745 1
746 1 if((cr_cd[0][0]&0x80)!=0x80)
747 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -