Pārlūkot izejas kodu

Length High Low 추가 / Atten DL 어텐제어 작업중 Atten UL Function 작업중 / UL Limit 제한 /ALC package Function 구현

PYJ 5 gadi atpakaļ
vecāks
revīzija
243415c67f

+ 2 - 1
Bluecell_Inc/Bluecell_operate.h

@@ -220,7 +220,8 @@ typedef struct{
220 220
 typedef enum{
221 221
 BLUECELL_HEADER,
222 222
 BLUECELL_TYPE,
223
-BLUECELL_LENGTH,
223
+BLUECELL_LENGTH_H,
224
+BLUECELL_LENGTH_L,
224 225
 BLUECELL_CRCINDEX,
225 226
 BLUECELL_DATA,
226 227
 }BLUECELLProt_st;

+ 362 - 124
Bluecell_Src/Bluecell_operate.c

@@ -281,6 +281,7 @@ uint8_t MBIC_DL_PE43711_Calc(uint8_t* Table,int16_t MBIC_Val,int16_t MBIC_UserVa
281 281
 
282 282
     double ret = 0;
283 283
     double ret2 = 0;
284
+    double ret3 = 0;
284 285
     uint8_t Result = 0;
285 286
     //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
286 287
 //    printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
@@ -597,16 +598,95 @@ void Bluecell_AttenInitialize(){
597 598
     PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
598 599
 
599 600
 }
601
+typedef enum{
602
+    ATTEN_H = 0,
603
+    ATTEN_L,        
604
+};
605
+void Atten_DL_Ctrl_Function(PE43711_st* ATT,ATT_TABLE_st* Table,uint8_t* CurrAtten,uint8_t* PrevAtten,uint8_t* CurrHiddenAtten,uint8_t* PrevHiddenAtten){
606
+     uint16_t MBIC_Val = 0;
607
+     uint16_t MBIC_ALC_Val = 0;
608
+     uint16_t MBIC_UserVal = 0;
609
+     uint8_t val = 0;
610
+    if(CurrAtten[ATTEN_H] != CurrAtten[ATTEN_H]
611
+      ||CurrAtten[ATTEN_H] != CurrAtten[ATTEN_L]
612
+      ||CurrHiddenAtten[ATTEN_H] != CurrHiddenAtten[ATTEN_H]
613
+      ||CurrHiddenAtten[ATTEN_H] != CurrHiddenAtten[ATTEN_L]){
614
+            PrevAtten[ATTEN_H] = CurrAtten[ATTEN_H];
615
+            PrevAtten[ATTEN_L] = CurrAtten[ATTEN_L];
616
+            PrevHiddenAtten[ATTEN_H] = CurrHiddenAtten[ATTEN_H];
617
+            PrevHiddenAtten[ATTEN_L] = CurrHiddenAtten[ATTEN_L];
618
+            MBIC_Val = CurrAtten[ATTEN_H] << 8 | CurrAtten[ATTEN_L];
619
+            MBIC_UserVal = CurrHiddenAtten[ATTEN_H] << 8 | CurrHiddenAtten[ATTEN_L];
620
+            val = MBIC_DL_PE43711_Calc(&Table->Table_0_0_dBm, // Table Offset
621
+                                MBIC_Val,
622
+                               MBIC_UserVal);// User Atten Low Bit
623
+            printf("%s : %d \r\n",__func__,__LINE__);   
624
+            printf("%d val = %x \r\n",__LINE__,val);
625
+            PE43711_atten_ctrl2(ATT,val);
626
+    }
627
+
628
+}
629
+typedef enum{
630
+    ATTEN_DL1= 0 ,
631
+    ATTEN_DL2,
632
+    ATTEN_DL3,
633
+    ATTEN_DL4,
634
+    ATTEN_UL1,    
635
+    ATTEN_UL2,    
636
+    ATTEN_UL3,    
637
+    ATTEN_UL4,    
638
+    
639
+};
640
+void Atten_UL_Ctrl_Function(uint8_t index,ATT_TABLE_st* Table,uint8_t* CurrAtten,uint8_t* PrevAtten,uint8_t* CurrHiddenAtten,uint8_t* PrevHiddenAtten,uint8_t* CurrALCAtten,uint8_t* PrevALCAtten){
641
+     int16_t MBIC_Val = 0;
642
+     int16_t MBIC_UserVal = 0;
643
+     int16_t MBIC_ALCVal = 0;     
644
+     uint8_t val = 0;
645
+    if(CurrAtten[ATTEN_H] != CurrAtten[ATTEN_H]
646
+      ||CurrAtten[ATTEN_L] != CurrAtten[ATTEN_L]
647
+      ||CurrHiddenAtten[ATTEN_H] != CurrHiddenAtten[ATTEN_H]
648
+      ||CurrHiddenAtten[ATTEN_L] != CurrHiddenAtten[ATTEN_L]
649
+      ||PrevALCAtten[ATTEN_H] != CurrALCAtten[ATTEN_H]
650
+      ||PrevALCAtten[ATTEN_L] != CurrALCAtten[ATTEN_L]){
651
+
652
+      
653
+            PrevAtten[ATTEN_H] = CurrAtten[ATTEN_H];
654
+            PrevAtten[ATTEN_L] = CurrAtten[ATTEN_L];
655
+            PrevHiddenAtten[ATTEN_H] = CurrHiddenAtten[ATTEN_H];
656
+            PrevHiddenAtten[ATTEN_L] = CurrHiddenAtten[ATTEN_L];
657
+            CurrALCAtten[ATTEN_H] = CurrALCAtten[ATTEN_H];
658
+            CurrALCAtten[ATTEN_L] = CurrALCAtten[ATTEN_L];
659
+            MBIC_Val = CurrAtten[ATTEN_H] << 8 | CurrAtten[ATTEN_L];
660
+            MBIC_UserVal = CurrHiddenAtten[ATTEN_H] << 8 | CurrHiddenAtten[ATTEN_L];
661
+            MBIC_ALCVal= CurrALCAtten[ATTEN_H] << 8 | CurrALCAtten[ATTEN_L];
662
+            val = MBIC_UL_PE43711_Calc(&Table->Table_0_0_dBm, // Table Offset
663
+                                MBIC_Val,
664
+                               MBIC_UserVal,
665
+                               MBIC_ALCVal);// User Atten Low Bit
666
+                               
667
+            printf("%s : %d \r\n",__func__,__LINE__);   
668
+            printf("%d val = %x \r\n",__LINE__,val);
669
+            switch(index){
670
+                case ATTEN_UL1:    PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);break;
671
+                case ATTEN_UL2:    PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);break;
672
+                case ATTEN_UL3:    PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);break;
673
+                case ATTEN_UL4:    PE43711_UL4_atten_ctrl(val);break;
674
+            }
675
+
676
+    }
677
+
678
+}
679
+
600 680
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
601 681
      uint8_t val = 0;
602 682
      uint16_t MBIC_Val = 0;
603 683
      uint16_t MBIC_ALC_Val = 0;
604 684
      uint16_t MBIC_UserVal = 0;
605 685
 
606
-    if((Curr.ATT_DL1_H != Prev.ATT_DL1_H
607
-     ||Curr.ATT_DL1_L != Prev.ATT_DL1_L)
608
-     ||(Curr.bluecell_User_DL1_H != Prev.bluecell_User_DL1_H
609
-     ||Curr.bluecell_User_DL1_L != Prev.bluecell_User_DL1_L)){
686
+    if((Curr.ATT_DL1_H != Prev.ATT_DL1_H)
687
+     ||(Curr.ATT_DL1_L != Prev.ATT_DL1_L)
688
+     ||(Curr.bluecell_User_DL1_H != Prev.bluecell_User_DL1_H)
689
+     ||(Curr.bluecell_User_DL1_L != Prev.bluecell_User_DL1_L)){
610 690
 //         printf("%s : %d \r\n",__func__,__LINE__);   
611 691
             bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
612 692
             bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
@@ -623,8 +703,8 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
623 703
     }
624 704
     if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
625 705
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)
626
-     ||(Curr.bluecell_User_DL2_H != Prev.bluecell_User_DL2_H
627
-     ||Curr.bluecell_User_DL2_L != Prev.bluecell_User_DL2_L)){
706
+     ||(Curr.bluecell_User_DL2_H != Prev.bluecell_User_DL2_H)
707
+     ||(Curr.bluecell_User_DL2_L != Prev.bluecell_User_DL2_L)){
628 708
             bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
629 709
             bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
630 710
             bluecell_Prevdatastatus.bluecell_User_DL2_H = bluecell_Currdatastatus.bluecell_User_DL2_H;
@@ -638,10 +718,10 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
638 718
             PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
639 719
     }
640 720
      
641
-    if((Curr.ATT_DL3_H != Prev.ATT_DL3_H
642
-     ||Curr.ATT_DL3_L != Prev.ATT_DL3_L)
643
-     ||(Curr.bluecell_User_DL3_H != Prev.bluecell_User_DL3_H
644
-     ||Curr.bluecell_User_DL3_L != Prev.bluecell_User_DL3_L)){
721
+    if((Curr.ATT_DL3_H != Prev.ATT_DL3_H)
722
+     ||(Curr.ATT_DL3_L != Prev.ATT_DL3_L)
723
+     ||(Curr.bluecell_User_DL3_H != Prev.bluecell_User_DL3_H)
724
+     ||(Curr.bluecell_User_DL3_L != Prev.bluecell_User_DL3_L)){
645 725
 
646 726
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
647 727
         bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
@@ -659,10 +739,10 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
659 739
 //    printf("\r\nCurr.ATT_DL3_H : %x \r\nPrev.ATT_DL3_H : %x \r\n",Curr.ATT_DL3_H,Prev.ATT_DL3_H);
660 740
 //     printf("\r\nCurr.ATT_DL3_L : %x \r\nPrev.ATT_DL3_L : %x \r\n",Curr.ATT_DL3_L,Prev.ATT_DL3_L);
661 741
      
662
-    if((Curr.ATT_DL4_H != Prev.ATT_DL4_H
663
-     ||Curr.ATT_DL4_L != Prev.ATT_DL4_L)
664
-     ||(Curr.bluecell_User_DL4_H != Prev.bluecell_User_DL4_H
665
-     ||Curr.bluecell_User_DL4_L != Prev.bluecell_User_DL4_L)){
742
+    if((Curr.ATT_DL4_H != Prev.ATT_DL4_H)
743
+     ||(Curr.ATT_DL4_L != Prev.ATT_DL4_L)
744
+     ||(Curr.bluecell_User_DL4_H != Prev.bluecell_User_DL4_H)
745
+     ||(Curr.bluecell_User_DL4_L != Prev.bluecell_User_DL4_L)){
666 746
      
667 747
             bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
668 748
             bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
@@ -679,6 +759,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
679 759
             printf("%d val = %x \r\n",__LINE__,val);
680 760
             PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
681 761
     }
762
+
682 763
     if(bluecell_Prevdatastatus.bluecell_User_UL1_H != 0xFF)
683 764
         bluecell_Prevdatastatus.bluecell_User_UL1_H =0xFF;
684 765
     if(bluecell_Prevdatastatus.bluecell_User_UL2_H != 0xFF)
@@ -688,12 +769,13 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
688 769
     if(bluecell_Prevdatastatus.bluecell_User_UL4_H != 0xFF)
689 770
         bluecell_Prevdatastatus.bluecell_User_UL4_H =0xFF;
690 771
     
691
-    if((Curr.ATT_UL1_H != Prev.ATT_UL1_H
692
-     ||Curr.ATT_UL1_L != Prev.ATT_UL1_L)
693
-     ||(Curr.bluecell_User_UL1_H != Prev.bluecell_User_UL1_H
694
-     ||Curr.bluecell_User_UL1_L != Prev.bluecell_User_UL1_L)
695
-     ||(Curr.MBIC_ULO_ALC_Atten1_H != Prev.MBIC_ULO_ALC_Atten1_H
696
-     ||Curr.MBIC_ULO_ALC_Atten1_L != Prev.MBIC_ULO_ALC_Atten1_L)){
772
+#if 1 // PYJ.2020.06.27_BEGIN -- 
773
+    if((Curr.ATT_UL1_H != Prev.ATT_UL1_H)
774
+     ||(Curr.ATT_UL1_L != Prev.ATT_UL1_L)
775
+     ||(Curr.bluecell_User_UL1_H != Prev.bluecell_User_UL1_H)
776
+     ||(Curr.bluecell_User_UL1_L != Prev.bluecell_User_UL1_L)
777
+     ||(Curr.MBIC_ULO_ALC_Atten1_H != Prev.MBIC_ULO_ALC_Atten1_H)
778
+     ||(Curr.MBIC_ULO_ALC_Atten1_L != Prev.MBIC_ULO_ALC_Atten1_L)){
697 779
      
698 780
             bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
699 781
             bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
@@ -712,12 +794,22 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
712 794
     //        printf("%d val = %x \r\n",__LINE__,val);
713 795
             PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
714 796
     }
715
-    if((Curr.ATT_UL2_H != Prev.ATT_UL2_H
716
-     ||Curr.ATT_UL2_L != Prev.ATT_UL2_L)
717
-     ||(Curr.bluecell_User_UL2_H != Prev.bluecell_User_UL2_H
718
-     ||Curr.bluecell_User_UL2_L != Prev.bluecell_User_UL2_L)
719
-     ||(Curr.MBIC_ULO_ALC_Atten2_H != Prev.MBIC_ULO_ALC_Atten2_H
720
-     ||Curr.MBIC_ULO_ALC_Atten2_L != Prev.MBIC_ULO_ALC_Atten2_L)){
797
+//    Atten_UL_Ctrl_Function(ATTEN_UL1,
798
+//                            &Att_UL1.Table_0_0_dBm,
799
+//                            &bluecell_Currdatastatus.ATT_UL1_H,
800
+//                            &bluecell_Prevdatastatus.ATT_UL1_L,
801
+//                            &bluecell_Currdatastatus.bluecell_User_UL1_H,
802
+//                            &bluecell_Prevdatastatus.bluecell_User_UL1_L,
803
+//                            &bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H,
804
+//                            &bluecell_Prevdatastatus.MBIC_ULO_ALC_Atten1_L);
805
+#endif // PYJ.2020.06.27_END -- 
806
+
807
+    if((Curr.ATT_UL2_H != Prev.ATT_UL2_H)
808
+     ||(Curr.ATT_UL2_L != Prev.ATT_UL2_L)
809
+     ||(Curr.bluecell_User_UL2_H != Prev.bluecell_User_UL2_H)
810
+     ||(Curr.bluecell_User_UL2_L != Prev.bluecell_User_UL2_L)
811
+     ||(Curr.MBIC_ULO_ALC_Atten2_H != Prev.MBIC_ULO_ALC_Atten2_H)
812
+     ||(Curr.MBIC_ULO_ALC_Atten2_L != Prev.MBIC_ULO_ALC_Atten2_L)){
721 813
             bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
722 814
             bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
723 815
             bluecell_Prevdatastatus.bluecell_User_UL2_H = bluecell_Currdatastatus.bluecell_User_UL2_H;
@@ -729,23 +821,23 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
729 821
             MBIC_Val = Curr.ATT_UL2_H << 8 | Curr.ATT_UL2_L;
730 822
             MBIC_ALC_Val = Curr.MBIC_ULO_ALC_Atten2_H << 8 | Curr.MBIC_ULO_ALC_Atten2_L;
731 823
             MBIC_UserVal = Curr.bluecell_User_UL2_H << 8 | Curr.bluecell_User_UL2_L;
732
-            printf("MBIC_Val : %02X \r\n",MBIC_Val);
733
-            printf("MBIC_UserVal : %02X \r\n",MBIC_UserVal);
734
-            printf("MBIC_ALC_Val : %02X \r\n",MBIC_ALC_Val);
824
+            printf("UL 2MBIC_Val : %02X \r\n",MBIC_Val);
825
+            printf("UL 2MBIC_UserVal : %02X \r\n",MBIC_UserVal);
826
+            printf("UL 2MBIC_ALC_Val : %02X \r\n",MBIC_ALC_Val);
735 827
             val = MBIC_UL_PE43711_Calc(&Att_UL2.Table_0_0_dBm,// Table Offset
736 828
                                 MBIC_Val,// Hidden Atten Low bit
737 829
                                MBIC_UserVal,
738 830
                                MBIC_ALC_Val);// User Atten Low Bit
739
-            printf("%d val = %x \r\n",__LINE__,val);
831
+            printf("UL 2 LINE: %d val = %x \r\n",__LINE__,val);
740 832
             PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
741 833
     }
742 834
      
743
-    if((Curr.ATT_UL3_H != Prev.ATT_UL3_H
744
-     ||Curr.ATT_UL3_L != Prev.ATT_UL3_L)
745
-     ||(Curr.bluecell_User_UL3_H != Prev.bluecell_User_UL3_H
746
-     ||Curr.bluecell_User_UL3_L != Prev.bluecell_User_UL3_L)
747
-     ||(Curr.MBIC_ULO_ALC_Atten3_H != Prev.MBIC_ULO_ALC_Atten3_H
748
-     ||Curr.MBIC_ULO_ALC_Atten3_L != Prev.MBIC_ULO_ALC_Atten3_L))
835
+    if((Curr.ATT_UL3_H != Prev.ATT_UL3_H)
836
+     ||(Curr.ATT_UL3_L != Prev.ATT_UL3_L)
837
+     ||(Curr.bluecell_User_UL3_H != Prev.bluecell_User_UL3_H)
838
+     ||(Curr.bluecell_User_UL3_L != Prev.bluecell_User_UL3_L)
839
+     ||(Curr.MBIC_ULO_ALC_Atten3_H != Prev.MBIC_ULO_ALC_Atten3_H)
840
+     ||(Curr.MBIC_ULO_ALC_Atten3_L != Prev.MBIC_ULO_ALC_Atten3_L))
749 841
      {
750 842
             bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
751 843
             bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
@@ -768,13 +860,26 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
768 860
 
769 861
             PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
770 862
     }
771
-    if((Curr.ATT_UL4_H != Prev.ATT_UL4_H
772
-     ||Curr.ATT_UL4_L != Prev.ATT_UL4_L)
773
-     ||(Curr.bluecell_User_UL4_H != Prev.bluecell_User_UL4_H
774
-     ||Curr.bluecell_User_UL4_L != Prev.bluecell_User_UL4_L)
775
-     ||(Curr.MBIC_ULO_ALC_Atten4_H != Prev.MBIC_ULO_ALC_Atten4_H
776
-     ||Curr.MBIC_ULO_ALC_Atten4_L != Prev.MBIC_ULO_ALC_Atten4_L))
863
+    if((Curr.ATT_UL4_H != Prev.ATT_UL4_H)
864
+     ||(Curr.ATT_UL4_L != Prev.ATT_UL4_L)
865
+     ||(Curr.bluecell_User_UL4_H != Prev.bluecell_User_UL4_H)
866
+     ||(Curr.bluecell_User_UL4_L != Prev.bluecell_User_UL4_L)
867
+     ||(Curr.MBIC_ULO_ALC_Atten4_H != Prev.MBIC_ULO_ALC_Atten4_H)
868
+     ||(Curr.MBIC_ULO_ALC_Atten4_L != Prev.MBIC_ULO_ALC_Atten4_L))
777 869
      {
870
+            printf("bluecell_Prevdatastatus.MBIC_ULO_ALC_Atten4_H : %02x \r\n",bluecell_Prevdatastatus.MBIC_ULO_ALC_Atten4_H);
871
+            printf("bluecell_Prevdatastatus.MBIC_ULO_ALC_Atten4_L : %02x \r\n",bluecell_Prevdatastatus.MBIC_ULO_ALC_Atten4_L);
872
+            printf("bluecell_Prevdatastatus.ATT_UL4_H : %02x \r\n",bluecell_Prevdatastatus.ATT_UL4_H);
873
+            printf("bluecell_Prevdatastatus.ATT_UL4_L : %02x \r\n",bluecell_Prevdatastatus.ATT_UL4_L);
874
+            printf("bluecell_Prevdatastatus.bluecell_User_UL4_H : %02x \r\n",bluecell_Prevdatastatus.bluecell_User_UL4_H);
875
+            printf("bluecell_Prevdatastatus.bluecell_User_UL4_L : %02x \r\n",bluecell_Prevdatastatus.bluecell_User_UL4_L);        
876
+            printf("============================================================\r\n");
877
+            printf("bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H : %02x \r\n",bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H);
878
+            printf("bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L : %02x \r\n",bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L);
879
+            printf("bluecell_Currdatastatus.ATT_UL4_H : %02x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
880
+            printf("bluecell_Currdatastatus.ATT_UL4_L : %02x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
881
+            printf("bluecell_Currdatastatus.bluecell_User_UL4_H : %02x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_H);
882
+            printf("bluecell_Currdatastatus.bluecell_User_UL4_L : %02x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_L);        
778 883
             bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
779 884
             bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
780 885
             bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
@@ -788,10 +893,6 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
788 893
                                 MBIC_Val,// Hidden Atten Low bit
789 894
                                MBIC_UserVal,
790 895
                                MBIC_ALC_Val);// User Atten Low Bit
791
-        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
792
-        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
793
-        printf("bluecell_Currdatastatus.bluecell_User_UL4_H : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_H);
794
-        printf("bluecell_Currdatastatus.bluecell_User_UL4_L : %0x \r\n",bluecell_Currdatastatus.bluecell_User_UL4_L);        
795 896
             printf("%d val = %x \r\n",__LINE__,val);
796 897
             PE43711_UL4_atten_ctrl(val);
797 898
     }
@@ -1294,134 +1395,135 @@ void Bluecell_TableLoad(uint8_t* data,uint8_t type){
1294 1395
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1295 1396
             printf("Table_Length : %d , Table_Ref : %d ",Att_DL1.Table_Length,Att_DL1.Table_Ref);
1296 1397
 //            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1297
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1398
+            data[BLUECELL_LENGTH_H] = 0;
1399
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;;
1298 1400
           break;
1299 1401
         case DLI_P2_ATT_Accuracy_Table_Number: 
1300 1402
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL1_TABLE_ADDRESDS),&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1301 1403
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1302
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1404
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1303 1405
             break;
1304 1406
         case DLI_P3_ATT_Accuracy_Table_Number: 
1305 1407
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL2_TABLE_ADDRESDS),&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1306 1408
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1307
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1409
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1308 1410
             break;
1309 1411
         case DLI_P4_ATT_Accuracy_Table_Number: 
1310 1412
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL3_TABLE_ADDRESDS),&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1311 1413
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1312
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1414
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1313 1415
             break;
1314 1416
         case ULO_P1_ATT_Accuracy_Table_Number: 
1315 1417
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL4_TABLE_ADDRESDS),&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1316 1418
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1317
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1419
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1318 1420
         break;
1319 1421
         case ULO_P2_ATT_Accuracy_Table_Number: 
1320 1422
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL1_TABLE_ADDRESDS),&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1321 1423
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1322
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1424
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1323 1425
             break;
1324 1426
         case ULO_P3_ATT_Accuracy_Table_Number: 
1325 1427
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL2_TABLE_ADDRESDS),&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1326 1428
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1327
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1429
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1328 1430
             break;
1329 1431
         case ULO_P4_ATT_Accuracy_Table_Number: 
1330 1432
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL3_TABLE_ADDRESDS),&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1331 1433
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1332
-            data[BLUECELL_LENGTH] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1434
+            data[BLUECELL_LENGTH_L] = (sizeof(ATT_TABLE_st)) + 7 - 3;
1333 1435
             break;
1334 1436
         case DLI_P1_Level_Table_Number: 
1335 1437
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL4_TABLE_ADDRESDS),&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1336 1438
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1337 1439
             printf("Table_Length : %d , Table_Ref : %d ",Det_DL1.Table_Length,Det_DL1.Table_Ref);
1338
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1440
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1339 1441
             break;
1340 1442
         case DLI_P2_Level_Table_Number: 
1341 1443
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL1_TABLE_ADDRESDS),&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1342 1444
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1343
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1445
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1344 1446
             break;
1345 1447
         case DLI_P3_Level_Table_Number: 
1346 1448
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL2_TABLE_ADDRESDS),&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1347 1449
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1348
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1450
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1349 1451
             break;
1350 1452
         case DLI_P4_Level_Table_Number: 
1351 1453
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL3_TABLE_ADDRESDS),&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1352 1454
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1353
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1455
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEDL_st)) + 7 - 3;
1354 1456
             break;
1355 1457
         case ULO_P1_Level_Table_Number: 
1356 1458
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL4_TABLE_ADDRESDS),&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1357 1459
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1358
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1460
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1359 1461
             break;
1360 1462
         case ULO_P2_Level_Table_Number: 
1361 1463
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL1_TABLE_ADDRESDS),&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1362 1464
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1363
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1465
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1364 1466
         
1365 1467
             break;
1366 1468
         case ULO_P3_Level_Table_Number: 
1367 1469
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL2_TABLE_ADDRESDS),&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1368 1470
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1369
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1471
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1370 1472
             break;
1371 1473
         case ULO_P4_Level_Table_Number: 
1372 1474
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL3_TABLE_ADDRESDS),&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1373 1475
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1374
-            data[BLUECELL_LENGTH] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1476
+            data[BLUECELL_LENGTH_L] = (sizeof(DET_TABLEUL_st)) + 7 - 3;
1375 1477
 
1376 1478
             break;
1377 1479
         case DLI_P1_ATT_Temp_guarantee_Table_Number:
1378 1480
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&Temp_DL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1379 1481
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL1.Table_1_Temp,sizeof(TEMP_TABLE_st));
1380
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1482
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1381 1483
             printf("Table_Length : %d , Table_Ref : %d ",Temp_DL1.Table_Length,Temp_DL1.Table_Ref);            
1382 1484
 
1383 1485
             break;
1384 1486
         case DLI_P2_ATT_Temp_guarantee_Table_Number:
1385 1487
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL1_TABLE_ADDRESDS),&Temp_DL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1386 1488
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL2.Table_1_Temp,sizeof(TEMP_TABLE_st));
1387
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1489
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1388 1490
 
1389 1491
             break;
1390 1492
         case DLI_P3_ATT_Temp_guarantee_Table_Number:
1391 1493
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&Temp_DL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1392 1494
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL3.Table_1_Temp,sizeof(TEMP_TABLE_st));
1393
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1495
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1394 1496
 
1395 1497
             break;
1396 1498
         case DLI_P4_ATT_Temp_guarantee_Table_Number:
1397 1499
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL3_TABLE_ADDRESDS),&Temp_DL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1398 1500
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL4.Table_1_Temp,sizeof(TEMP_TABLE_st));
1399
-        data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1501
+        data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1400 1502
 
1401 1503
         break;
1402 1504
         case ULO_P1_ATT_Temp_guarantee_Table_Number:
1403 1505
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1404 1506
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL1.Table_1_Temp,sizeof(TEMP_TABLE_st));
1405
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1507
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1406 1508
             printf("Table_Length : %d , Table_Ref : %d ",Temp_UL1.Table_Length,Temp_UL1.Table_Ref);
1407 1509
         
1408 1510
             break;
1409 1511
         case ULO_P2_ATT_Temp_guarantee_Table_Number:
1410 1512
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL1_TABLE_ADDRESDS),&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1411 1513
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st));
1412
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1514
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1413 1515
         
1414 1516
             break;
1415 1517
         case ULO_P3_ATT_Temp_guarantee_Table_Number:
1416 1518
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL2_TABLE_ADDRESDS),&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1417 1519
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st));
1418
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1520
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1419 1521
         
1420 1522
             break;
1421 1523
         case ULO_P4_ATT_Temp_guarantee_Table_Number:
1422 1524
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL3_TABLE_ADDRESDS),&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1423 1525
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st));
1424
-            data[BLUECELL_LENGTH] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1526
+            data[BLUECELL_LENGTH_L] = (sizeof(TEMP_TABLE_st)) + 7 - 3;
1425 1527
             break;
1426 1528
     }
1427 1529
         
@@ -1930,7 +2032,7 @@ bool Bluecell_Operate(uint8_t* data){
1930 2032
 
1931 2033
   //double ret = 0 ,tmp = 0.1;
1932 2034
   int16_t tempdata = 0;
1933
-  
2035
+  int16_t CurrAtten = 0;
1934 2036
   uint8_t i = 0;
1935 2037
   switch(datatype){
1936 2038
     case BLUECELL_SOFTWARERESET:
@@ -1942,8 +2044,10 @@ bool Bluecell_Operate(uint8_t* data){
1942 2044
         
1943 2045
         bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
1944 2046
         bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
1945
-//        printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
1946
-//        printf("bluecell_Currdatastatus.ATT_DL1_L : %x\r\n",bluecell_Currdatastatus.ATT_DL1_L);        
2047
+        printf("bluecell_Currdatastatus.ATT_DL1_H : %x\r\n",bluecell_Currdatastatus.ATT_DL1_H);
2048
+        printf("bluecell_Currdatastatus.ATT_DL1_L : %x\r\n",bluecell_Currdatastatus.ATT_DL1_L);  
2049
+        CurrAtten = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
2050
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
1947 2051
         /*
1948 2052
             Atten Ctrl Function
1949 2053
         */
@@ -1952,6 +2056,11 @@ bool Bluecell_Operate(uint8_t* data){
1952 2056
     case Bluecell_ATT_DL2                :
1953 2057
         bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
1954 2058
         bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
2059
+        printf("bluecell_Currdatastatus.ATT_DL2_H : %x\r\n",bluecell_Currdatastatus.ATT_DL2_H);
2060
+        printf("bluecell_Currdatastatus.ATT_DL2_L : %x\r\n",bluecell_Currdatastatus.ATT_DL2_L);        
2061
+        CurrAtten = bluecell_Currdatastatus.ATT_DL2_H << 8 | bluecell_Currdatastatus.ATT_DL2_L;
2062
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2063
+        
1955 2064
 
1956 2065
         /*
1957 2066
             Atten Ctrl Function
@@ -1961,6 +2070,8 @@ bool Bluecell_Operate(uint8_t* data){
1961 2070
 	case Bluecell_ATT_DL3 				 :        
1962 2071
         bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
1963 2072
         bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
2073
+        CurrAtten = bluecell_Currdatastatus.ATT_DL3_H << 8 | bluecell_Currdatastatus.ATT_DL3_L;
2074
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
1964 2075
 
1965 2076
         /*
1966 2077
             Atten Ctrl Function
@@ -1970,6 +2081,8 @@ bool Bluecell_Operate(uint8_t* data){
1970 2081
 	case Bluecell_ATT_DL4 				 :    
1971 2082
         bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
1972 2083
         bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
2084
+        CurrAtten = bluecell_Currdatastatus.ATT_DL4_H << 8 | bluecell_Currdatastatus.ATT_DL4_L;
2085
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
1973 2086
 
1974 2087
         /*
1975 2088
             Atten Ctrl Function
@@ -1980,6 +2093,13 @@ bool Bluecell_Operate(uint8_t* data){
1980 2093
 
1981 2094
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
1982 2095
         bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
2096
+        CurrAtten = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
2097
+        if(CurrAtten <= -200){
2098
+            bluecell_Currdatastatus.ATT_UL1_H = (CurrAtten & 0xFF00) >> 8;
2099
+            bluecell_Currdatastatus.ATT_UL1_L = (CurrAtten & 0x00FF);
2100
+        }
2101
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2102
+    
1983 2103
         /*
1984 2104
             Atten Ctrl Function
1985 2105
         */
@@ -1991,6 +2111,12 @@ bool Bluecell_Operate(uint8_t* data){
1991 2111
     case Bluecell_ATT_UL2                :        
1992 2112
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
1993 2113
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
2114
+        CurrAtten = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
2115
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2116
+        if(CurrAtten <= -200){
2117
+            bluecell_Currdatastatus.ATT_UL2_H = (CurrAtten & 0xFF00) >> 8;
2118
+            bluecell_Currdatastatus.ATT_UL2_L = (CurrAtten & 0x00FF);
2119
+        }
1994 2120
 
1995 2121
         /*
1996 2122
             Atten Ctrl Function
@@ -2001,6 +2127,12 @@ bool Bluecell_Operate(uint8_t* data){
2001 2127
     case Bluecell_ATT_UL3                :    
2002 2128
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2003 2129
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
2130
+        CurrAtten = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
2131
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2132
+        if(CurrAtten <= -200){
2133
+            bluecell_Currdatastatus.ATT_UL3_H = (CurrAtten & 0xFF00) >> 8;
2134
+            bluecell_Currdatastatus.ATT_UL3_L = (CurrAtten & 0x00FF);
2135
+        }
2004 2136
 
2005 2137
         /*
2006 2138
             Atten Ctrl Function
@@ -2011,8 +2143,12 @@ bool Bluecell_Operate(uint8_t* data){
2011 2143
     case Bluecell_ATT_UL4                :        
2012 2144
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2013 2145
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
2014
-        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
2015
-        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);        
2146
+        CurrAtten = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
2147
+        if(CurrAtten <= -200){
2148
+            bluecell_Currdatastatus.ATT_UL4_H = (CurrAtten & 0xFF00) >> 8;
2149
+            bluecell_Currdatastatus.ATT_UL4_L = (CurrAtten & 0x00FF);
2150
+        }        
2151
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2016 2152
         ALCTimerCnt = 0;
2017 2153
 
2018 2154
 
@@ -2193,19 +2329,19 @@ bool Bluecell_Operate(uint8_t* data){
2193 2329
         Bluecell_TableLoad(data, data[BLUECELL_DATA]);
2194 2330
         data[BLUECELL_TYPE] = ATT_TableGet;
2195 2331
 
2196
-        data[data[BLUECELL_LENGTH] + 1] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0xFF00) >> 8);
2197
-        data[data[BLUECELL_LENGTH] + 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0x00FF;        
2198
-        data[data[BLUECELL_LENGTH] + 3] = 0xEB;
2332
+        data[data[BLUECELL_LENGTH_L] + 1] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH_L]) & 0xFF00) >> 8);
2333
+        data[data[BLUECELL_LENGTH_L] + 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH_L]) & 0x00FF;        
2334
+        data[data[BLUECELL_LENGTH_L] + 3] = 0xEB;
2199 2335
         
2200
-        Bluecell_StructCpy(&Txdata[0],&data[0],data[BLUECELL_LENGTH] + 4);
2201
-        Uart1_Data_Send(&Txdata[0], Txdata[BLUECELL_LENGTH] + 4);
2336
+        Bluecell_StructCpy(&Txdata[0],&data[0],data[BLUECELL_LENGTH_L] + 4);
2337
+        Uart1_Data_Send(&Txdata[0], Txdata[BLUECELL_LENGTH_L] + 4);
2202 2338
 #if 0 // PYJ.2020.04.22_BEGIN -- 
2203
-        for(int i = 0 ; i < data[BLUECELL_LENGTH] + 3; i++ ){
2339
+        for(int i = 0 ; i < data[BLUECELL_LENGTH_L] + 3; i++ ){
2204 2340
 //            printf("%x ",data[i]);
2205 2341
         Txdata[0] = data[0];        }
2206 2342
         printf("\r\n");
2207 2343
 #endif // PYJ.2020.04.22_END -- 
2208
-//        printf("\r\nuint8_t data : %x  data[BLUECELL_LENGTH] + 6 : %d\r\n",data[0],data[BLUECELL_LENGTH] + 6);
2344
+//        printf("\r\nuint8_t data : %x  data[BLUECELL_LENGTH_L] + 6 : %d\r\n",data[0],data[BLUECELL_LENGTH_L] + 6);
2209 2345
         break;
2210 2346
     case Bluecell_StatusReq:
2211 2347
         if(Initialize == false){
@@ -2218,17 +2354,17 @@ bool Bluecell_Operate(uint8_t* data){
2218 2354
         DataStatusSet();
2219 2355
 #if 0 // PYJ.2020.05.28_BEGIN -- 
2220 2356
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,94);
2221
-        Txdata[BLUECELL_LENGTH] = 94 - 3;//sizeof(BLUESTATUS_st) - 3;
2222
-        Txdata[94 - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
2357
+        Txdata[BLUECELL_LENGTH_L] = 94 - 3;//sizeof(BLUESTATUS_st) - 3;
2358
+        Txdata[94 - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH_L]);
2223 2359
 #else        
2224 2360
 //        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
2225 2361
 //        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
2226 2362
 
2227 2363
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
2228
-        Txdata[BLUECELL_LENGTH] = sizeof(BLUESTATUS_st) - 3;//sizeof(BLUESTATUS_st) - 3;
2229
-//        Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
2230
-        Txdata[sizeof(BLUESTATUS_st) - 3] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0xFF00) >> 8);
2231
-        Txdata[sizeof(BLUESTATUS_st) - 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH]) & 0x00FF;        
2364
+        Txdata[BLUECELL_LENGTH_L] = sizeof(BLUESTATUS_st) - 3;//sizeof(BLUESTATUS_st) - 3;
2365
+//        Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH_L]);
2366
+        Txdata[sizeof(BLUESTATUS_st) - 3] = ((CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH_L]) & 0xFF00) >> 8);
2367
+        Txdata[sizeof(BLUESTATUS_st) - 2] = CRC16_Generate(&data[BLUECELL_TYPE], data[BLUECELL_LENGTH_L]) & 0x00FF;        
2232 2368
         
2233 2369
 #endif // PYJ.2020.05.28_END -- 
2234 2370
 #if 0 // PYJ.2020.04.22_BEGIN -- 
@@ -2255,46 +2391,85 @@ bool Bluecell_Operate(uint8_t* data){
2255 2391
     case Bluecell_DL1_USER: 
2256 2392
         bluecell_Currdatastatus.bluecell_User_DL1_H = data[BLUECELL_DATA + i++];
2257 2393
         bluecell_Currdatastatus.bluecell_User_DL1_L = data[BLUECELL_DATA + i++];
2394
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_DL1_H << 8 | bluecell_Currdatastatus.bluecell_User_DL1_L;
2395
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2258 2396
         
2259 2397
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2260 2398
         break;
2261 2399
     case Bluecell_DL2_USER:
2262 2400
         bluecell_Currdatastatus.bluecell_User_DL2_H = data[BLUECELL_DATA + i++];
2263 2401
         bluecell_Currdatastatus.bluecell_User_DL2_L = data[BLUECELL_DATA + i++];
2402
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_DL2_H << 8 | bluecell_Currdatastatus.bluecell_User_DL2_L;
2403
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);    
2264 2404
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2265 2405
         break;
2266 2406
     case Bluecell_DL3_USER:
2267 2407
         bluecell_Currdatastatus.bluecell_User_DL3_H = data[BLUECELL_DATA + i++];
2268 2408
         bluecell_Currdatastatus.bluecell_User_DL3_L = data[BLUECELL_DATA + i++];
2409
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_DL3_H << 8 | bluecell_Currdatastatus.bluecell_User_DL3_L;
2410
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);    
2269 2411
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2270 2412
         break;
2271 2413
     case Bluecell_DL4_USER:     
2272 2414
         bluecell_Currdatastatus.bluecell_User_DL4_H = data[BLUECELL_DATA + i++];
2273 2415
         bluecell_Currdatastatus.bluecell_User_DL4_L = data[BLUECELL_DATA + i++];
2416
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_DL4_H << 8 | bluecell_Currdatastatus.bluecell_User_DL4_L;
2417
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);    
2274 2418
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2275 2419
         break;
2276 2420
 
2277 2421
     case Bluecell_UL1_USER: 
2278 2422
         bluecell_Currdatastatus.bluecell_User_UL1_H = data[BLUECELL_DATA + i++];
2279 2423
         bluecell_Currdatastatus.bluecell_User_UL1_L = data[BLUECELL_DATA + i++];
2424
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_UL1_H << 8 | bluecell_Currdatastatus.bluecell_User_UL1_L;
2425
+        if(CurrAtten >= 0 )
2426
+            CurrAtten = bluecell_Currdatastatus.bluecell_User_UL1_H =  bluecell_Currdatastatus.bluecell_User_UL1_L = 0;
2427
+        else if(CurrAtten <= -50 )
2428
+            CurrAtten = - 50;
2429
+
2430
+
2431
+        bluecell_Currdatastatus.bluecell_User_UL1_H = (CurrAtten & 0xFF00) >> 8;
2432
+        bluecell_Currdatastatus.bluecell_User_UL1_L = CurrAtten & 0x00FF;
2280 2433
         
2434
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2281 2435
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2282 2436
         break;
2283 2437
     case Bluecell_UL2_USER:
2284 2438
         bluecell_Currdatastatus.bluecell_User_UL2_H = data[BLUECELL_DATA + i++];
2285 2439
         bluecell_Currdatastatus.bluecell_User_UL2_L = data[BLUECELL_DATA + i++];
2440
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_UL2_H << 8 | bluecell_Currdatastatus.bluecell_User_UL2_L;
2441
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2442
+        if(CurrAtten >= 0 )
2443
+            CurrAtten = bluecell_Currdatastatus.bluecell_User_UL2_H =  bluecell_Currdatastatus.bluecell_User_UL2_L = 0;
2444
+        else if(CurrAtten <= -50 )
2445
+            CurrAtten = - 50;    
2286 2446
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2287 2447
 
2288 2448
         break;
2289 2449
     case Bluecell_UL3_USER:
2290 2450
         bluecell_Currdatastatus.bluecell_User_UL3_H = data[BLUECELL_DATA + i++];
2291 2451
         bluecell_Currdatastatus.bluecell_User_UL3_L = data[BLUECELL_DATA + i++];
2452
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_UL3_H << 8 | bluecell_Currdatastatus.bluecell_User_UL3_L;
2453
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2454
+        if(CurrAtten >= 0 )
2455
+            CurrAtten = bluecell_Currdatastatus.bluecell_User_UL3_H =  bluecell_Currdatastatus.bluecell_User_UL3_L = 0;
2456
+        else if(CurrAtten <= -50 )
2457
+            CurrAtten = - 50;    
2458
+    
2292 2459
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2293 2460
 
2294 2461
         break;
2295 2462
     case Bluecell_UL4_USER:
2296 2463
         bluecell_Currdatastatus.bluecell_User_UL4_H = data[BLUECELL_DATA + i++];
2297 2464
         bluecell_Currdatastatus.bluecell_User_UL4_L = data[BLUECELL_DATA + i++];
2465
+        CurrAtten = bluecell_Currdatastatus.bluecell_User_UL4_H << 8 | bluecell_Currdatastatus.bluecell_User_UL4_L;
2466
+        if(CurrAtten >= 0 )
2467
+            CurrAtten = bluecell_Currdatastatus.bluecell_User_UL4_H =  bluecell_Currdatastatus.bluecell_User_UL4_L = 0;
2468
+        else if(CurrAtten <= -50 )
2469
+            CurrAtten = - 50;    
2470
+        
2471
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2472
+    
2298 2473
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2299 2474
         break;
2300 2475
 
@@ -2494,21 +2669,33 @@ bool Bluecell_Operate(uint8_t* data){
2494 2669
     case BLuecell_ATT_ALC1:
2495 2670
         bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2496 2671
         bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = data[BLUECELL_DATA + i++];
2672
+        CurrAtten = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
2673
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);     
2674
+        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2497 2675
 
2498 2676
         break;
2499 2677
     case BLuecell_ATT_ALC2:
2500
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2501
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = data[BLUECELL_DATA + i++];
2678
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H = data[BLUECELL_DATA + i++];
2679
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L = data[BLUECELL_DATA + i++];
2680
+        CurrAtten = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L;
2681
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2682
+        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2502 2683
 
2503 2684
         break;
2504 2685
     case BLuecell_ATT_ALC3:
2505
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2506
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = data[BLUECELL_DATA + i++];
2686
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H = data[BLUECELL_DATA + i++];
2687
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L = data[BLUECELL_DATA + i++];
2688
+        CurrAtten = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L;
2689
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2690
+        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2507 2691
 
2508 2692
         break;
2509 2693
     case BLuecell_ATT_ALC4:
2510
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2511
-        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = data[BLUECELL_DATA + i++];
2694
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H = data[BLUECELL_DATA + i++];
2695
+        bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L = data[BLUECELL_DATA + i++];
2696
+        CurrAtten = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L;
2697
+        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);        
2698
+        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2512 2699
 
2513 2700
         break;
2514 2701
   }
@@ -2518,7 +2705,7 @@ bool Bluecell_Operate(uint8_t* data){
2518 2705
   {
2519 2706
       Bluecell_StructCpy(&DataWrite[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
2520 2707
       EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS),&DataWrite[0],sizeof(BLUESTATUS_st));
2521
-      EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_WINDOW_STATUS_ADDRESDS,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
2708
+//      EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_WINDOW_STATUS_ADDRESDS,&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st) );
2522 2709
 //      Bluecell_StructCpy(&Txdata[0],&DataWrite[0],sizeof(BLUESTATUS_st));
2523 2710
 //      Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], sizeof(BLUESTATUS_st) - 3);
2524 2711
 //      Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
@@ -4771,21 +4958,21 @@ int8_t Bluecell_TestPro2(double value ){
4771 4958
         minusset = true;
4772 4959
     }
4773 4960
     value *= 10;
4774
-    printf("value*10 : %f \r\n",value);
4961
+//    printf("value*10 : %f \r\n",value);
4775 4962
     temp = (int8_t)value;
4776
-    printf("temp <-value*10 : %d \r\n",temp );
4963
+//    printf("temp <-value*10 : %d \r\n",temp );
4777 4964
     remine = (temp % 10);  
4778
-    printf("temp <-value*10 % remine : %f \r\n",remine);
4965
+//    printf("temp <-value*10 % remine : %f \r\n",remine);
4779 4966
 
4780 4967
    
4781 4968
         if(remine >= 5){
4782
-            printf("temp : %d remind : %d \r\n",temp,remine);
4969
+//            printf("temp : %d remind : %d \r\n",temp,remine);
4783 4970
             temp = temp - remine;
4784
-            printf("tempret  : %d \r\n",temp);        
4785
-            printf("1.temp : %d \r\n",temp);
4971
+//            printf("tempret  : %d \r\n",temp);        
4972
+//            printf("1.temp : %d \r\n",temp);
4786 4973
 //            if(value >= 10){
4787 4974
                 temp += 10;//0.5 for
4788
-            printf("2.temp : %d \r\n",temp);
4975
+//            printf("2.temp : %d \r\n",temp);
4789 4976
 //            }
4790 4977
         }else{
4791 4978
             if(originval > 1)
@@ -4794,14 +4981,14 @@ int8_t Bluecell_TestPro2(double value ){
4794 4981
                temp = (int8_t)originval;
4795 4982
             }
4796 4983
             temp *= 10;
4797
-            printf("originval : %f  temp : %d \r\n",originval,temp);
4984
+//            printf("originval : %f  temp : %d \r\n",originval,temp);
4798 4985
         }
4799 4986
 
4800 4987
         value = (temp * 0.1);
4801
-        printf("1.round Ret : %f \r\n",value);
4988
+//        printf("1.round Ret : %f \r\n",value);
4802 4989
         if(minusset ==true)
4803 4990
            value = value * -1;
4804
-        printf("2.round Ret : %f \r\n",value);    
4991
+//        printf("2.round Ret : %f \r\n",value);    
4805 4992
     return value;
4806 4993
 
4807 4994
 }
@@ -4953,7 +5140,7 @@ double AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t siz
4953 5140
         return (RefTable_Data[LastIndex] - (dot * 0.1));
4954 5141
     }
4955 5142
     else{
4956
-        printf("CurrentAdc : %f     TableAdc : %f \r\n",CurrentAdc,TableAdc);
5143
+//        printf("CurrentAdc : %f     TableAdc : %f \r\n",CurrentAdc,TableAdc);
4957 5144
         return (RefTable_Data[0]);
4958 5145
     }
4959 5146
 }
@@ -5112,24 +5299,24 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
5112 5299
 #endif // PYJ.2020.06.20_END -- 
5113 5300
     if(threshold < CurrDet){
5114 5301
         ret = CurrDet - threshold ;
5115
-        printf("1. %f : %f - %d\r\n",ret,CurrDet,threshold);
5302
+//        printf("1. %f : %f - %d\r\n",ret,CurrDet,threshold);
5116 5303
 
5117 5304
         
5118
-        printf("2. %f : %f - %d\r\n",ret,CurrDet,threshold);
5305
+//        printf("2. %f : %f - %d\r\n",ret,CurrDet,threshold);
5119 5306
         result = Bluecell_TestPro2(ret /*+( CurrAtten * -1)*/);
5120
-        printf("2.5. Ret : %d \r\n",result);
5307
+//        printf("2.5. Ret : %d \r\n",result);
5121 5308
         result *= -1;  
5122
-        printf("3. Ret : %d \r\n",result);
5309
+//        printf("3. Ret : %d \r\n",result);
5123 5310
 //        if(CurrAtten <= -20)
5124 5311
 //            ALC_AlarmSet[num] = true;
5125 5312
     }
5126 5313
     else if(threshold -2 > CurrDet ){
5127 5314
         if(CurrAtten < 0){
5128 5315
             ret =  (threshold - 2) - CurrDet ;// -27 ///// - 29
5129
-            printf("%f  =  %d - %f\r\n",ret,(threshold - 2),CurrDet);
5130
-            printf("CurrAtten : %f\r\n",CurrAtten);
5316
+//            printf("%f  =  %d - %f\r\n",ret,(threshold - 2),CurrDet);
5317
+//            printf("CurrAtten : %f\r\n",CurrAtten);
5131 5318
             result = Bluecell_TestPro2(ret);
5132
-            printf("3.ret : %d\r\n",result);
5319
+//            printf("3.ret : %d\r\n",result);
5133 5320
             result += CurrAtten;
5134 5321
             if(CurrAtten < 0){
5135 5322
                 int8_t tmp = CurrAtten * - 1;
@@ -5137,7 +5324,7 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
5137 5324
             result = CurrAtten + 1;
5138 5325
             result *= -1;     
5139 5326
              
5140
-            printf("4.ret : %d\r\n",result);
5327
+//            printf("4.ret : %d\r\n",result);
5141 5328
 //            ALC_AlarmSet[num] = false; 
5142 5329
 
5143 5330
         }
@@ -5221,17 +5408,17 @@ void ALC_Package_Operate(uint8_t*ULO_ADC_Level,uint8_t* ULO_Level,DET_TABLEUL_st
5221 5408
     CurrentATTENVALUE = PE43711_Double(ALC_Atten[ULO_ALC_H],ALC_Atten[ULO_ALC_L]);
5222 5409
     ULO_Level[ULO_ALC_H] = (ResultData & 0xFF00) >> 8;
5223 5410
     ULO_Level[ULO_ALC_L] = (ResultData & 0x00FF);
5224
-    printf("=============ALC ON =====START================\r\n");
5225
-    printf("Current UL ADC VALUE : %f \r\n",ret);
5226
-    printf("ResdBm : UL%d : %f \r\n",TableIndex,ResdBm);    
5227
-    printf("ORIGIN ResdBm : %f  %d\r\n",ResdBm,Main_Atten);
5228
-    printf("After ResdBm : %f \r\n",ResdBm);
5411
+//    printf("=============ALC ON =====START================\r\n");
5412
+//    printf("Current UL ADC VALUE : %f \r\n",ret);
5413
+//    printf("ResdBm : UL%d : %f \r\n",TableIndex,ResdBm);    
5414
+//    printf("ORIGIN ResdBm : %f  %d\r\n",ResdBm,Main_Atten);
5415
+//    printf("After ResdBm : %f \r\n",ResdBm);
5229 5416
     Limitdata += (Main_Atten * 0.1);
5230 5417
     ALC_Alarm_TimerSet(TableIndex,Limitdata,ResdBm,UL_Atten);
5231 5418
     IwillGiveAtten = ALC_Calc(TableIndex,CurrentATTENVALUE,Limitdata,ResdBm);
5232
-    printf("STEP 1 : I WILL GIVE ATTEN  %d \r\n",IwillGiveAtten);
5419
+//    printf("STEP 1 : I WILL GIVE ATTEN  %d \r\n",IwillGiveAtten);
5233 5420
     IwillGiveAtten += UL_Atten;
5234
-    printf("STEP 2 : I WILL GIVE ATTEN PLUS  ALC ATTEN  %d \r\n",IwillGiveAtten);    
5421
+//    printf("STEP 2 : I WILL GIVE ATTEN PLUS  ALC ATTEN  %d \r\n",IwillGiveAtten);    
5235 5422
     if(ResdBm <= (Limitdata - 3)){
5236 5423
         if(IwillGiveAtten <= -10){
5237 5424
             IwillGiveAtten += 10;
@@ -5248,9 +5435,9 @@ void ALC_Package_Operate(uint8_t*ULO_ADC_Level,uint8_t* ULO_Level,DET_TABLEUL_st
5248 5435
     if(IwillGiveAtten >= 0){
5249 5436
         IwillGiveAtten = 0;
5250 5437
     }       
5251
-    printf(" UL_Atten: %d I WILL GIVE ATTEN  : %d \r\n", UL_Atten,IwillGiveAtten);  
5252
-    printf("ADC : %f CURR ATT : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
5253
-    printf("==================END================\r\n");          
5438
+//    printf(" UL_Atten: %d I WILL GIVE ATTEN  : %d \r\n", UL_Atten,IwillGiveAtten);  
5439
+//    printf("ADC : %f CURR ATT : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
5440
+//    printf("==================END================\r\n");          
5254 5441
     
5255 5442
 //    if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten))){
5256 5443
 //    IwillGiveAtten *= 10;
@@ -5881,8 +6068,59 @@ void AGC_Alarm_Check(uint8_t Path_Index,double AGC_Det,uint8_t* AGC_Table,uint16
5881 6068
     }
5882 6069
 
5883 6070
 }
6071
+typedef enum{
6072
+    DLI_ALC_H = 0,
6073
+    DLI_ALC_L,
6074
+};
6075
+
6076
+#if 0 // PYJ.2020.06.27_BEGIN -- 
6077
+void AGC_Package_Operate(uint8_t* Threshold,uint8_t* DL_MainAtten,uint8_t Tableindex,uint8_t* DLI_ADC_Level,uint8_t* DLI_Level,uint8_t,DET_TABLEDL_st* DL_Table){
6078
+        double ret = 0;
6079
+        int8_t ResdBm = 0;
6080
+        
6081
+        int16_t Levelret = 0;
6082
+        int i = 0;
6083
+        int16_t Limitdata = 0;
6084
+        int16_t IwillgiveAtten = 0;
6085
+        int16_t ResultData = 0;
6086
+        int8_t* AGC_Table;// = &AGC_Table_ref[MBIC_Table_DL1_INDEX].DET_DL_0;
5884 6087
 
5885 6088
 
6089
+        
6090
+
6091
+        AGC_Table = &AGC_Table_ref[Tableindex].DET_DL_0;
6092
+        ret  = DLI_ADC_Level[DLI_ALC_H] << 8;
6093
+        ret += DLI_ADC_Level[DLI_ALC_L];   
6094
+        ret *= 0.001;
6095
+        ResdBm = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&DL_Table->Table_Det5_dBm_H,DL_Table->Table_Length * 2,AGC_Table));
6096
+        DLI_Level[DLI_ALC_H] = ((int16_t)ResdBm & 0xFF00) >> 8;
6097
+        DLI_Level[DLI_ALC_L] = ((int16_t)ResdBm & 0x00FF);
6098
+        for(i = 0; i < sizeof(AGC_dBm_t); i++){
6099
+            if(AGC_Table[i] == ResdBm)
6100
+                break;
6101
+        }
6102
+        IwillgiveAtten = AGC_Calc(Limitdata,ResdBm);
6103
+        IwillgiveAtten *= -1;
6104
+//        printf("==================================\r\n");
6105
+//        printf("Current DL1 ADC VALUE : %f \r\n",ret);
6106
+//        printf("ResdBm : DL1 : %d \r\n",ResdBm);
6107
+//        printf("I WILL GIVE YOU ATTEN  : %d\r\n",IwillgiveAtten);            
6108
+//        printf("AGC  : %d\r\n",Limitdata);            
6109
+
6110
+
6111
+        if(ResdBm > Limitdata &&  DL_PrevIwillgiveAtten[Tableindex] > IwillgiveAtten){
6112
+//            printf("IwillgiveAtten : %d \r\n",IwillgiveAtten);
6113
+            DL_PrevIwillgiveAtten[Tableindex] = IwillgiveAtten;
6114
+            IwillgiveAtten = (DL_AGC_StartAtten[Tableindex]/10) + IwillgiveAtten;
6115
+//            printf("WILLATTEN RET : %d \r\n",IwillgiveAtten);
6116
+            AGC_Alarm_Check(AGC_Alarm_DL1_Index,ret,&Det_DL1.Table_Det5_dBm_H,IwillgiveAtten);
6117
+            DL_MainAtten[DLI_ALC_H] = (((IwillgiveAtten * 10) & 0xFF00) >> 8) ;
6118
+            DL_MainAtten[DLI_ALC_L] = (((IwillgiveAtten * 10) & 0x00FF));     
6119
+            CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
6120
+        }
6121
+
6122
+}
6123
+#endif // PYJ.2020.06.27_END -- 
5886 6124
 
5887 6125
 void AGC_Function(){//DL
5888 6126
     double ret = 0;

+ 2 - 2
Bluecell_Src/CRC.c

@@ -205,7 +205,7 @@ etError CRC16_Check(uint8_t* buf_ptr, int len,uint16_t checksum)
205 205
     uint16_t crc = 0;
206 206
     for (uint32_t counter = 0; counter < len; counter++)
207 207
         crc = (uint16_t)((crc << 8) ^ crc16_tab[(uint32_t)(((crc >> 8) ^ buf_ptr[counter]) & 0x00FF)]);
208
-
208
+    printf("REAL CRC %x / IN CRC : %x \r\n",crc,checksum);
209 209
     return (crc == checksum ? CHECKSUM_ERROR : NO_ERROR);
210 210
 }
211 211
 
@@ -219,7 +219,7 @@ uint16_t CRC16_Generate(uint8_t* buf_ptr, int len)
219 219
 //      printf("%d CRC : %x  buf_ptr : %x Counter %d\r\n",a,crc,buf_ptr[counter],counter);
220 220
       a++;
221 221
     }
222
-//    printf("len : %d \r\n",len);
222
+    printf("len : %d \r\n",len);
223 223
     return crc;
224 224
 }   
225 225
 

+ 30 - 0
Bluecell_Src/PE43711.c

@@ -196,6 +196,36 @@ void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
196 196
     Pol_Delay_us(10);
197 197
     HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
198 198
 }
199
+void PE43711_atten_ctrl2(PE43711_st* ATT ,uint8_t data){
200
+    uint8_t i = 0;
201
+    uint8_t temp = 0;
202
+    //data = 4 * data; // ATTEN ERROR 수정 
203
+    temp = (uint8_t)data;
204
+    
205
+    HAL_GPIO_WritePin(ATT->LE_PORT,ATT->LE_PIN,GPIO_PIN_RESET);
206
+    Pol_Delay_us(10);
207
+    for(i = 0; i < 8; i++){
208
+        if((uint8_t)temp & 0x01){
209
+           HAL_GPIO_WritePin(ATT->DATA_PORT,ATT->DATA_PIN,GPIO_PIN_SET);//DATA
210
+        }
211
+           else{
212
+           HAL_GPIO_WritePin(ATT->DATA_PORT,ATT->DATA_PIN,GPIO_PIN_RESET);//DATA
213
+           }
214
+
215
+		HAL_GPIO_WritePin(ATT->CLK_PORT,ATT->CLK_PIN,GPIO_PIN_SET);//CLOCK
216
+		Pol_Delay_us(10);
217
+		HAL_GPIO_WritePin(ATT->CLK_PORT,ATT->CLK_PIN,GPIO_PIN_RESET);//CLOCK
218
+		Pol_Delay_us(10);
219
+		temp >>= 1;
220
+    }
221
+    
222
+	HAL_GPIO_WritePin(ATT->CLK_PORT,ATT->CLK_PIN,GPIO_PIN_RESET);//CLOCK
223
+    HAL_GPIO_WritePin(ATT->DATA_PORT,ATT->DATA_PIN,GPIO_PIN_RESET);//DATA
224
+    Pol_Delay_us(10);
225
+    HAL_GPIO_WritePin(ATT->LE_PORT,ATT->LE_PIN,GPIO_PIN_SET);//LE
226
+    Pol_Delay_us(10);
227
+    HAL_GPIO_WritePin(ATT->LE_PORT,ATT->LE_PIN,GPIO_PIN_RESET);
228
+}
199 229
 
200 230
 
201 231
 void PE43711_UL4_atten_ctrl(uint8_t data){

+ 9 - 6
Bluecell_Src/uart.c

@@ -98,7 +98,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
98 98
 //        printf("data cnt zero !!!  \r\n");
99 99
         //RF_Ctrl_Main(&uart_buf[Header]);
100 100
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
101
-#if 0// PYJ.2019.07.15_BEGIN --
101
+#if 1// PYJ.2019.07.15_BEGIN --
102 102
             printf("\r\n[RX]");
103 103
             for(int i = 0; i < cnt; i++){
104 104
                 printf("%02x ",uart_buf[i]);
@@ -106,6 +106,9 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
106 106
             printf("                       CNT : %d \r\n",cnt);
107 107
 #endif // PYJ.2019.07.15_END --
108 108
             if(uart_buf[0] == 0xbe){
109
+                Length = uart_buf[BLUECELL_LENGTH_H] << 8  |  uart_buf[BLUECELL_LENGTH_L] ;
110
+                CrcChk = uart_buf[Length + 1] << 8 | uart_buf[Length  + 2] ;
111
+                if(CRC16_Check(&uart_buf[BLUECELL_TYPE], Length,CrcChk))
109 112
             	Bluecell_Operate(uart_buf);
110 113
             }else if(uart_buf[0] == MBIC_PREAMBLE0
111 114
                    &&uart_buf[1] == MBIC_PREAMBLE1
@@ -147,11 +150,11 @@ void Uart1_Data_Send(uint8_t* data,uint16_t size){
147 150
   //HAL_UART_Transmit_IT(&hTerminal, &data[0],size);
148 151
 //    printf("data[278] : %x \r\n",data[278]);
149 152
 ////    HAL_Delay(1);   
150
-//    printf("\r\n [TX] : ");
151
-    for(int i = 0; i< size; i++)
152
-        printf("%02x ",data[i]);
153
-    printf("\r\n\tCOUNT : %d \r\n",size);
154
-    printf("\r\n");
153
+//    printf("\r\n [TX] : {");
154
+//    for(int i = 0; i< size; i++)
155
+//        printf(",0x%02x ",data[i]);
156
+//    printf("};\r\n\tCOUNT : %d \r\n",size);
157
+//    printf("\r\n");
155 158
     
156 159
 }
157 160
 

+ 0 - 1
Src/main.c

@@ -117,7 +117,6 @@ volatile uint32_t Alarm_DL_Level_TimerOnCnt = 0;
117 117
 volatile uint32_t Alarm_UL_Level_TimerOffCnt = 0;
118 118
 volatile uint32_t Alarm_UL_Level_TimerOnCnt = 0;
119 119
 
120
-volatile uint32_t ALC_GainOffset_TimerCnt = 0;
121 120
 
122 121
 
123 122