Explorar o código

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

PYJ %!s(int64=5) %!d(string=hai) anos
pai
achega
243415c67f
Modificáronse 6 ficheiros con 405 adicións e 134 borrados
  1. 2 1
      Bluecell_Inc/Bluecell_operate.h
  2. 362 124
      Bluecell_Src/Bluecell_operate.c
  3. 2 2
      Bluecell_Src/CRC.c
  4. 30 0
      Bluecell_Src/PE43711.c
  5. 9 6
      Bluecell_Src/uart.c
  6. 0 1
      Src/main.c

+ 2 - 1
Bluecell_Inc/Bluecell_operate.h

@@ -220,7 +220,8 @@ typedef struct{
220
 typedef enum{
220
 typedef enum{
221
 BLUECELL_HEADER,
221
 BLUECELL_HEADER,
222
 BLUECELL_TYPE,
222
 BLUECELL_TYPE,
223
-BLUECELL_LENGTH,
223
+BLUECELL_LENGTH_H,
224
+BLUECELL_LENGTH_L,
224
 BLUECELL_CRCINDEX,
225
 BLUECELL_CRCINDEX,
225
 BLUECELL_DATA,
226
 BLUECELL_DATA,
226
 }BLUECELLProt_st;
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
     double ret = 0;
282
     double ret = 0;
283
     double ret2 = 0;
283
     double ret2 = 0;
284
+    double ret3 = 0;
284
     uint8_t Result = 0;
285
     uint8_t Result = 0;
285
     //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
286
     //ret = PE43711_Double(MBIC_Val); // Hidden Atten Calc
286
 //    printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
287
 //    printf("MBIC_UserVal : %x \r\n",MBIC_UserVal); // 2
@@ -597,16 +598,95 @@ void Bluecell_AttenInitialize(){
597
     PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
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
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
680
 void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
601
      uint8_t val = 0;
681
      uint8_t val = 0;
602
      uint16_t MBIC_Val = 0;
682
      uint16_t MBIC_Val = 0;
603
      uint16_t MBIC_ALC_Val = 0;
683
      uint16_t MBIC_ALC_Val = 0;
604
      uint16_t MBIC_UserVal = 0;
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
 //         printf("%s : %d \r\n",__func__,__LINE__);   
690
 //         printf("%s : %d \r\n",__func__,__LINE__);   
611
             bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
691
             bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
612
             bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
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
     if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
704
     if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
625
      ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)
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
             bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
708
             bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
629
             bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
709
             bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
630
             bluecell_Prevdatastatus.bluecell_User_DL2_H = bluecell_Currdatastatus.bluecell_User_DL2_H;
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
             PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
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
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
726
         bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
647
         bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
727
         bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
@@ -659,10 +739,10 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
659
 //    printf("\r\nCurr.ATT_DL3_H : %x \r\nPrev.ATT_DL3_H : %x \r\n",Curr.ATT_DL3_H,Prev.ATT_DL3_H);
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
 //     printf("\r\nCurr.ATT_DL3_L : %x \r\nPrev.ATT_DL3_L : %x \r\n",Curr.ATT_DL3_L,Prev.ATT_DL3_L);
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
             bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
747
             bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
668
             bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
748
             bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
@@ -679,6 +759,7 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
679
             printf("%d val = %x \r\n",__LINE__,val);
759
             printf("%d val = %x \r\n",__LINE__,val);
680
             PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
760
             PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
681
     }
761
     }
762
+
682
     if(bluecell_Prevdatastatus.bluecell_User_UL1_H != 0xFF)
763
     if(bluecell_Prevdatastatus.bluecell_User_UL1_H != 0xFF)
683
         bluecell_Prevdatastatus.bluecell_User_UL1_H =0xFF;
764
         bluecell_Prevdatastatus.bluecell_User_UL1_H =0xFF;
684
     if(bluecell_Prevdatastatus.bluecell_User_UL2_H != 0xFF)
765
     if(bluecell_Prevdatastatus.bluecell_User_UL2_H != 0xFF)
@@ -688,12 +769,13 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
688
     if(bluecell_Prevdatastatus.bluecell_User_UL4_H != 0xFF)
769
     if(bluecell_Prevdatastatus.bluecell_User_UL4_H != 0xFF)
689
         bluecell_Prevdatastatus.bluecell_User_UL4_H =0xFF;
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
             bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
780
             bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
699
             bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
781
             bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
@@ -712,12 +794,22 @@ void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
712
     //        printf("%d val = %x \r\n",__LINE__,val);
794
     //        printf("%d val = %x \r\n",__LINE__,val);
713
             PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
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
             bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
813
             bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
722
             bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
814
             bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
723
             bluecell_Prevdatastatus.bluecell_User_UL2_H = bluecell_Currdatastatus.bluecell_User_UL2_H;
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
             MBIC_Val = Curr.ATT_UL2_H << 8 | Curr.ATT_UL2_L;
821
             MBIC_Val = Curr.ATT_UL2_H << 8 | Curr.ATT_UL2_L;
730
             MBIC_ALC_Val = Curr.MBIC_ULO_ALC_Atten2_H << 8 | Curr.MBIC_ULO_ALC_Atten2_L;
822
             MBIC_ALC_Val = Curr.MBIC_ULO_ALC_Atten2_H << 8 | Curr.MBIC_ULO_ALC_Atten2_L;
731
             MBIC_UserVal = Curr.bluecell_User_UL2_H << 8 | Curr.bluecell_User_UL2_L;
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
             val = MBIC_UL_PE43711_Calc(&Att_UL2.Table_0_0_dBm,// Table Offset
827
             val = MBIC_UL_PE43711_Calc(&Att_UL2.Table_0_0_dBm,// Table Offset
736
                                 MBIC_Val,// Hidden Atten Low bit
828
                                 MBIC_Val,// Hidden Atten Low bit
737
                                MBIC_UserVal,
829
                                MBIC_UserVal,
738
                                MBIC_ALC_Val);// User Atten Low Bit
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
             PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
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
             bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
842
             bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
751
             bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
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
             PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
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
             bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
883
             bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
779
             bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
884
             bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
780
             bluecell_Prevdatastatus.bluecell_User_UL4_H = bluecell_Currdatastatus.bluecell_User_UL4_H;
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
                                 MBIC_Val,// Hidden Atten Low bit
893
                                 MBIC_Val,// Hidden Atten Low bit
789
                                MBIC_UserVal,
894
                                MBIC_UserVal,
790
                                MBIC_ALC_Val);// User Atten Low Bit
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
             printf("%d val = %x \r\n",__LINE__,val);
896
             printf("%d val = %x \r\n",__LINE__,val);
796
             PE43711_UL4_atten_ctrl(val);
897
             PE43711_UL4_atten_ctrl(val);
797
     }
898
     }
@@ -1294,134 +1395,135 @@ void Bluecell_TableLoad(uint8_t* data,uint8_t type){
1294
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1395
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
1295
             printf("Table_Length : %d , Table_Ref : %d ",Att_DL1.Table_Length,Att_DL1.Table_Ref);
1396
             printf("Table_Length : %d , Table_Ref : %d ",Att_DL1.Table_Length,Att_DL1.Table_Ref);
1296
 //            Bluecell_structprintf(&Att_DL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
           break;
1400
           break;
1299
         case DLI_P2_ATT_Accuracy_Table_Number: 
1401
         case DLI_P2_ATT_Accuracy_Table_Number: 
1300
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL1_TABLE_ADDRESDS),&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1402
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL1_TABLE_ADDRESDS),&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1301
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1405
             break;
1304
         case DLI_P3_ATT_Accuracy_Table_Number: 
1406
         case DLI_P3_ATT_Accuracy_Table_Number: 
1305
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL2_TABLE_ADDRESDS),&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1407
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL2_TABLE_ADDRESDS),&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1306
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1410
             break;
1309
         case DLI_P4_ATT_Accuracy_Table_Number: 
1411
         case DLI_P4_ATT_Accuracy_Table_Number: 
1310
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL3_TABLE_ADDRESDS),&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1412
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL3_TABLE_ADDRESDS),&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );               
1311
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_DL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1415
             break;
1314
         case ULO_P1_ATT_Accuracy_Table_Number: 
1416
         case ULO_P1_ATT_Accuracy_Table_Number: 
1315
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL4_TABLE_ADDRESDS),&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1417
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_DL4_TABLE_ADDRESDS),&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1316
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL1.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
         break;
1420
         break;
1319
         case ULO_P2_ATT_Accuracy_Table_Number: 
1421
         case ULO_P2_ATT_Accuracy_Table_Number: 
1320
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL1_TABLE_ADDRESDS),&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1422
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL1_TABLE_ADDRESDS),&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1321
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL2.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1425
             break;
1324
         case ULO_P3_ATT_Accuracy_Table_Number: 
1426
         case ULO_P3_ATT_Accuracy_Table_Number: 
1325
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL2_TABLE_ADDRESDS),&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1427
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL2_TABLE_ADDRESDS),&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1326
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL3.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1430
             break;
1329
         case ULO_P4_ATT_Accuracy_Table_Number: 
1431
         case ULO_P4_ATT_Accuracy_Table_Number: 
1330
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL3_TABLE_ADDRESDS),&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1432
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL3_TABLE_ADDRESDS),&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st) );   
1331
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Att_UL4.Table_0_0_dBm,sizeof(ATT_TABLE_st));
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
             break;
1435
             break;
1334
         case DLI_P1_Level_Table_Number: 
1436
         case DLI_P1_Level_Table_Number: 
1335
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL4_TABLE_ADDRESDS),&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1437
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_ATT_UL4_TABLE_ADDRESDS),&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1336
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1438
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
1337
             printf("Table_Length : %d , Table_Ref : %d ",Det_DL1.Table_Length,Det_DL1.Table_Ref);
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
             break;
1441
             break;
1340
         case DLI_P2_Level_Table_Number: 
1442
         case DLI_P2_Level_Table_Number: 
1341
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL1_TABLE_ADDRESDS),&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1443
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL1_TABLE_ADDRESDS),&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1342
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
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
             break;
1446
             break;
1345
         case DLI_P3_Level_Table_Number: 
1447
         case DLI_P3_Level_Table_Number: 
1346
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL2_TABLE_ADDRESDS),&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1448
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL2_TABLE_ADDRESDS),&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1347
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
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
             break;
1451
             break;
1350
         case DLI_P4_Level_Table_Number: 
1452
         case DLI_P4_Level_Table_Number: 
1351
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL3_TABLE_ADDRESDS),&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1453
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL3_TABLE_ADDRESDS),&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st) );   
1352
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st));
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
             break;
1456
             break;
1355
         case ULO_P1_Level_Table_Number: 
1457
         case ULO_P1_Level_Table_Number: 
1356
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL4_TABLE_ADDRESDS),&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1458
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_DL4_TABLE_ADDRESDS),&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1357
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
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
             break;
1461
             break;
1360
         case ULO_P2_Level_Table_Number: 
1462
         case ULO_P2_Level_Table_Number: 
1361
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL1_TABLE_ADDRESDS),&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1463
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL1_TABLE_ADDRESDS),&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1362
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
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
             break;
1467
             break;
1366
         case ULO_P3_Level_Table_Number: 
1468
         case ULO_P3_Level_Table_Number: 
1367
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL2_TABLE_ADDRESDS),&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1469
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL2_TABLE_ADDRESDS),&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1368
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
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
             break;
1472
             break;
1371
         case ULO_P4_Level_Table_Number: 
1473
         case ULO_P4_Level_Table_Number: 
1372
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL3_TABLE_ADDRESDS),&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1474
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL3_TABLE_ADDRESDS),&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st) );   
1373
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
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
             break;
1478
             break;
1377
         case DLI_P1_ATT_Temp_guarantee_Table_Number:
1479
         case DLI_P1_ATT_Temp_guarantee_Table_Number:
1378
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&Temp_DL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1480
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_DET_UL4_TABLE_ADDRESDS),&Temp_DL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1379
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL1.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             printf("Table_Length : %d , Table_Ref : %d ",Temp_DL1.Table_Length,Temp_DL1.Table_Ref);            
1483
             printf("Table_Length : %d , Table_Ref : %d ",Temp_DL1.Table_Length,Temp_DL1.Table_Ref);            
1382
 
1484
 
1383
             break;
1485
             break;
1384
         case DLI_P2_ATT_Temp_guarantee_Table_Number:
1486
         case DLI_P2_ATT_Temp_guarantee_Table_Number:
1385
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL1_TABLE_ADDRESDS),&Temp_DL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1487
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL1_TABLE_ADDRESDS),&Temp_DL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1386
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL2.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             break;
1491
             break;
1390
         case DLI_P3_ATT_Temp_guarantee_Table_Number:
1492
         case DLI_P3_ATT_Temp_guarantee_Table_Number:
1391
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&Temp_DL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1493
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL2_TABLE_ADDRESDS),&Temp_DL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1392
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL3.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             break;
1497
             break;
1396
         case DLI_P4_ATT_Temp_guarantee_Table_Number:
1498
         case DLI_P4_ATT_Temp_guarantee_Table_Number:
1397
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL3_TABLE_ADDRESDS),&Temp_DL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1499
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL3_TABLE_ADDRESDS),&Temp_DL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1398
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_DL4.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
         break;
1503
         break;
1402
         case ULO_P1_ATT_Temp_guarantee_Table_Number:
1504
         case ULO_P1_ATT_Temp_guarantee_Table_Number:
1403
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1505
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_DL4_TABLE_ADDRESDS),&Temp_UL1.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1404
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL1.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             printf("Table_Length : %d , Table_Ref : %d ",Temp_UL1.Table_Length,Temp_UL1.Table_Ref);
1508
             printf("Table_Length : %d , Table_Ref : %d ",Temp_UL1.Table_Length,Temp_UL1.Table_Ref);
1407
         
1509
         
1408
             break;
1510
             break;
1409
         case ULO_P2_ATT_Temp_guarantee_Table_Number:
1511
         case ULO_P2_ATT_Temp_guarantee_Table_Number:
1410
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL1_TABLE_ADDRESDS),&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1512
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL1_TABLE_ADDRESDS),&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1411
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             break;
1516
             break;
1415
         case ULO_P3_ATT_Temp_guarantee_Table_Number:
1517
         case ULO_P3_ATT_Temp_guarantee_Table_Number:
1416
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL2_TABLE_ADDRESDS),&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1518
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL2_TABLE_ADDRESDS),&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1417
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             break;
1522
             break;
1421
         case ULO_P4_ATT_Temp_guarantee_Table_Number:
1523
         case ULO_P4_ATT_Temp_guarantee_Table_Number:
1422
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL3_TABLE_ADDRESDS),&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1524
             EEPROM_M24C08_Read(EEPROM_M24C08_ID ,(EEPROM_TEMP_UL3_TABLE_ADDRESDS),&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );   
1423
             Bluecell_DataCopy(&data[BLUECELL_DATA + 1],&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st));
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
             break;
1527
             break;
1426
     }
1528
     }
1427
         
1529
         
@@ -1930,7 +2032,7 @@ bool Bluecell_Operate(uint8_t* data){
1930
 
2032
 
1931
   //double ret = 0 ,tmp = 0.1;
2033
   //double ret = 0 ,tmp = 0.1;
1932
   int16_t tempdata = 0;
2034
   int16_t tempdata = 0;
1933
-  
2035
+  int16_t CurrAtten = 0;
1934
   uint8_t i = 0;
2036
   uint8_t i = 0;
1935
   switch(datatype){
2037
   switch(datatype){
1936
     case BLUECELL_SOFTWARERESET:
2038
     case BLUECELL_SOFTWARERESET:
@@ -1942,8 +2044,10 @@ bool Bluecell_Operate(uint8_t* data){
1942
         
2044
         
1943
         bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
2045
         bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
1944
         bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2052
             Atten Ctrl Function
1949
         */
2053
         */
@@ -1952,6 +2056,11 @@ bool Bluecell_Operate(uint8_t* data){
1952
     case Bluecell_ATT_DL2                :
2056
     case Bluecell_ATT_DL2                :
1953
         bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
2057
         bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
1954
         bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2066
             Atten Ctrl Function
@@ -1961,6 +2070,8 @@ bool Bluecell_Operate(uint8_t* data){
1961
 	case Bluecell_ATT_DL3 				 :        
2070
 	case Bluecell_ATT_DL3 				 :        
1962
         bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
2071
         bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
1963
         bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2077
             Atten Ctrl Function
@@ -1970,6 +2081,8 @@ bool Bluecell_Operate(uint8_t* data){
1970
 	case Bluecell_ATT_DL4 				 :    
2081
 	case Bluecell_ATT_DL4 				 :    
1971
         bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
2082
         bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
1972
         bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2088
             Atten Ctrl Function
@@ -1980,6 +2093,13 @@ bool Bluecell_Operate(uint8_t* data){
1980
 
2093
 
1981
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
2094
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
1982
         bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2104
             Atten Ctrl Function
1985
         */
2105
         */
@@ -1991,6 +2111,12 @@ bool Bluecell_Operate(uint8_t* data){
1991
     case Bluecell_ATT_UL2                :        
2111
     case Bluecell_ATT_UL2                :        
1992
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
2112
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
1993
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2122
             Atten Ctrl Function
@@ -2001,6 +2127,12 @@ bool Bluecell_Operate(uint8_t* data){
2001
     case Bluecell_ATT_UL3                :    
2127
     case Bluecell_ATT_UL3                :    
2002
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2128
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2003
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
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
             Atten Ctrl Function
2138
             Atten Ctrl Function
@@ -2011,8 +2143,12 @@ bool Bluecell_Operate(uint8_t* data){
2011
     case Bluecell_ATT_UL4                :        
2143
     case Bluecell_ATT_UL4                :        
2012
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2144
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2013
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
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
         ALCTimerCnt = 0;
2152
         ALCTimerCnt = 0;
2017
 
2153
 
2018
 
2154
 
@@ -2193,19 +2329,19 @@ bool Bluecell_Operate(uint8_t* data){
2193
         Bluecell_TableLoad(data, data[BLUECELL_DATA]);
2329
         Bluecell_TableLoad(data, data[BLUECELL_DATA]);
2194
         data[BLUECELL_TYPE] = ATT_TableGet;
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
 #if 0 // PYJ.2020.04.22_BEGIN -- 
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
 //            printf("%x ",data[i]);
2340
 //            printf("%x ",data[i]);
2205
         Txdata[0] = data[0];        }
2341
         Txdata[0] = data[0];        }
2206
         printf("\r\n");
2342
         printf("\r\n");
2207
 #endif // PYJ.2020.04.22_END -- 
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
         break;
2345
         break;
2210
     case Bluecell_StatusReq:
2346
     case Bluecell_StatusReq:
2211
         if(Initialize == false){
2347
         if(Initialize == false){
@@ -2218,17 +2354,17 @@ bool Bluecell_Operate(uint8_t* data){
2218
         DataStatusSet();
2354
         DataStatusSet();
2219
 #if 0 // PYJ.2020.05.28_BEGIN -- 
2355
 #if 0 // PYJ.2020.05.28_BEGIN -- 
2220
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,94);
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
 #else        
2359
 #else        
2224
 //        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
2360
 //        printf("bluecell_Currdatastatus.ATT_UL4_H : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_H);
2225
 //        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
2361
 //        printf("bluecell_Currdatastatus.ATT_UL4_L : %0x \r\n",bluecell_Currdatastatus.ATT_UL4_L);
2226
 
2362
 
2227
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
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
 #endif // PYJ.2020.05.28_END -- 
2369
 #endif // PYJ.2020.05.28_END -- 
2234
 #if 0 // PYJ.2020.04.22_BEGIN -- 
2370
 #if 0 // PYJ.2020.04.22_BEGIN -- 
@@ -2255,46 +2391,85 @@ bool Bluecell_Operate(uint8_t* data){
2255
     case Bluecell_DL1_USER: 
2391
     case Bluecell_DL1_USER: 
2256
         bluecell_Currdatastatus.bluecell_User_DL1_H = data[BLUECELL_DATA + i++];
2392
         bluecell_Currdatastatus.bluecell_User_DL1_H = data[BLUECELL_DATA + i++];
2257
         bluecell_Currdatastatus.bluecell_User_DL1_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2397
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2260
         break;
2398
         break;
2261
     case Bluecell_DL2_USER:
2399
     case Bluecell_DL2_USER:
2262
         bluecell_Currdatastatus.bluecell_User_DL2_H = data[BLUECELL_DATA + i++];
2400
         bluecell_Currdatastatus.bluecell_User_DL2_H = data[BLUECELL_DATA + i++];
2263
         bluecell_Currdatastatus.bluecell_User_DL2_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2404
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2265
         break;
2405
         break;
2266
     case Bluecell_DL3_USER:
2406
     case Bluecell_DL3_USER:
2267
         bluecell_Currdatastatus.bluecell_User_DL3_H = data[BLUECELL_DATA + i++];
2407
         bluecell_Currdatastatus.bluecell_User_DL3_H = data[BLUECELL_DATA + i++];
2268
         bluecell_Currdatastatus.bluecell_User_DL3_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2411
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2270
         break;
2412
         break;
2271
     case Bluecell_DL4_USER:     
2413
     case Bluecell_DL4_USER:     
2272
         bluecell_Currdatastatus.bluecell_User_DL4_H = data[BLUECELL_DATA + i++];
2414
         bluecell_Currdatastatus.bluecell_User_DL4_H = data[BLUECELL_DATA + i++];
2273
         bluecell_Currdatastatus.bluecell_User_DL4_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2418
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2275
         break;
2419
         break;
2276
 
2420
 
2277
     case Bluecell_UL1_USER: 
2421
     case Bluecell_UL1_USER: 
2278
         bluecell_Currdatastatus.bluecell_User_UL1_H = data[BLUECELL_DATA + i++];
2422
         bluecell_Currdatastatus.bluecell_User_UL1_H = data[BLUECELL_DATA + i++];
2279
         bluecell_Currdatastatus.bluecell_User_UL1_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2435
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2282
         break;
2436
         break;
2283
     case Bluecell_UL2_USER:
2437
     case Bluecell_UL2_USER:
2284
         bluecell_Currdatastatus.bluecell_User_UL2_H = data[BLUECELL_DATA + i++];
2438
         bluecell_Currdatastatus.bluecell_User_UL2_H = data[BLUECELL_DATA + i++];
2285
         bluecell_Currdatastatus.bluecell_User_UL2_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2446
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2287
 
2447
 
2288
         break;
2448
         break;
2289
     case Bluecell_UL3_USER:
2449
     case Bluecell_UL3_USER:
2290
         bluecell_Currdatastatus.bluecell_User_UL3_H = data[BLUECELL_DATA + i++];
2450
         bluecell_Currdatastatus.bluecell_User_UL3_H = data[BLUECELL_DATA + i++];
2291
         bluecell_Currdatastatus.bluecell_User_UL3_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2459
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2293
 
2460
 
2294
         break;
2461
         break;
2295
     case Bluecell_UL4_USER:
2462
     case Bluecell_UL4_USER:
2296
         bluecell_Currdatastatus.bluecell_User_UL4_H = data[BLUECELL_DATA + i++];
2463
         bluecell_Currdatastatus.bluecell_User_UL4_H = data[BLUECELL_DATA + i++];
2297
         bluecell_Currdatastatus.bluecell_User_UL4_L = data[BLUECELL_DATA + i++];
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
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2473
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2299
         break;
2474
         break;
2300
 
2475
 
@@ -2494,21 +2669,33 @@ bool Bluecell_Operate(uint8_t* data){
2494
     case BLuecell_ATT_ALC1:
2669
     case BLuecell_ATT_ALC1:
2495
         bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2670
         bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = data[BLUECELL_DATA + i++];
2496
         bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = data[BLUECELL_DATA + i++];
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
         break;
2676
         break;
2499
     case BLuecell_ATT_ALC2:
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
         break;
2684
         break;
2504
     case BLuecell_ATT_ALC3:
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
         break;
2692
         break;
2509
     case BLuecell_ATT_ALC4:
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
         break;
2700
         break;
2514
   }
2701
   }
@@ -2518,7 +2705,7 @@ bool Bluecell_Operate(uint8_t* data){
2518
   {
2705
   {
2519
       Bluecell_StructCpy(&DataWrite[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
2706
       Bluecell_StructCpy(&DataWrite[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
2520
       EEPROM_M24C08_write(EEPROM_M24C08_ID ,(EEPROM_WINDOW_STATUS_ADDRESDS),&DataWrite[0],sizeof(BLUESTATUS_st));
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
 //      Bluecell_StructCpy(&Txdata[0],&DataWrite[0],sizeof(BLUESTATUS_st));
2709
 //      Bluecell_StructCpy(&Txdata[0],&DataWrite[0],sizeof(BLUESTATUS_st));
2523
 //      Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], sizeof(BLUESTATUS_st) - 3);
2710
 //      Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], sizeof(BLUESTATUS_st) - 3);
2524
 //      Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
2711
 //      Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));        
@@ -4771,21 +4958,21 @@ int8_t Bluecell_TestPro2(double value ){
4771
         minusset = true;
4958
         minusset = true;
4772
     }
4959
     }
4773
     value *= 10;
4960
     value *= 10;
4774
-    printf("value*10 : %f \r\n",value);
4961
+//    printf("value*10 : %f \r\n",value);
4775
     temp = (int8_t)value;
4962
     temp = (int8_t)value;
4776
-    printf("temp <-value*10 : %d \r\n",temp );
4963
+//    printf("temp <-value*10 : %d \r\n",temp );
4777
     remine = (temp % 10);  
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
         if(remine >= 5){
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
             temp = temp - remine;
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
 //            if(value >= 10){
4973
 //            if(value >= 10){
4787
                 temp += 10;//0.5 for
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
         }else{
4977
         }else{
4791
             if(originval > 1)
4978
             if(originval > 1)
@@ -4794,14 +4981,14 @@ int8_t Bluecell_TestPro2(double value ){
4794
                temp = (int8_t)originval;
4981
                temp = (int8_t)originval;
4795
             }
4982
             }
4796
             temp *= 10;
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
         value = (temp * 0.1);
4987
         value = (temp * 0.1);
4801
-        printf("1.round Ret : %f \r\n",value);
4988
+//        printf("1.round Ret : %f \r\n",value);
4802
         if(minusset ==true)
4989
         if(minusset ==true)
4803
            value = value * -1;
4990
            value = value * -1;
4804
-        printf("2.round Ret : %f \r\n",value);    
4991
+//        printf("2.round Ret : %f \r\n",value);    
4805
     return value;
4992
     return value;
4806
 
4993
 
4807
 }
4994
 }
@@ -4953,7 +5140,7 @@ double AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t siz
4953
         return (RefTable_Data[LastIndex] - (dot * 0.1));
5140
         return (RefTable_Data[LastIndex] - (dot * 0.1));
4954
     }
5141
     }
4955
     else{
5142
     else{
4956
-        printf("CurrentAdc : %f     TableAdc : %f \r\n",CurrentAdc,TableAdc);
5143
+//        printf("CurrentAdc : %f     TableAdc : %f \r\n",CurrentAdc,TableAdc);
4957
         return (RefTable_Data[0]);
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
 #endif // PYJ.2020.06.20_END -- 
5299
 #endif // PYJ.2020.06.20_END -- 
5113
     if(threshold < CurrDet){
5300
     if(threshold < CurrDet){
5114
         ret = CurrDet - threshold ;
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
         result = Bluecell_TestPro2(ret /*+( CurrAtten * -1)*/);
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
         result *= -1;  
5308
         result *= -1;  
5122
-        printf("3. Ret : %d \r\n",result);
5309
+//        printf("3. Ret : %d \r\n",result);
5123
 //        if(CurrAtten <= -20)
5310
 //        if(CurrAtten <= -20)
5124
 //            ALC_AlarmSet[num] = true;
5311
 //            ALC_AlarmSet[num] = true;
5125
     }
5312
     }
5126
     else if(threshold -2 > CurrDet ){
5313
     else if(threshold -2 > CurrDet ){
5127
         if(CurrAtten < 0){
5314
         if(CurrAtten < 0){
5128
             ret =  (threshold - 2) - CurrDet ;// -27 ///// - 29
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
             result = Bluecell_TestPro2(ret);
5318
             result = Bluecell_TestPro2(ret);
5132
-            printf("3.ret : %d\r\n",result);
5319
+//            printf("3.ret : %d\r\n",result);
5133
             result += CurrAtten;
5320
             result += CurrAtten;
5134
             if(CurrAtten < 0){
5321
             if(CurrAtten < 0){
5135
                 int8_t tmp = CurrAtten * - 1;
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
             result = CurrAtten + 1;
5324
             result = CurrAtten + 1;
5138
             result *= -1;     
5325
             result *= -1;     
5139
              
5326
              
5140
-            printf("4.ret : %d\r\n",result);
5327
+//            printf("4.ret : %d\r\n",result);
5141
 //            ALC_AlarmSet[num] = false; 
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
     CurrentATTENVALUE = PE43711_Double(ALC_Atten[ULO_ALC_H],ALC_Atten[ULO_ALC_L]);
5408
     CurrentATTENVALUE = PE43711_Double(ALC_Atten[ULO_ALC_H],ALC_Atten[ULO_ALC_L]);
5222
     ULO_Level[ULO_ALC_H] = (ResultData & 0xFF00) >> 8;
5409
     ULO_Level[ULO_ALC_H] = (ResultData & 0xFF00) >> 8;
5223
     ULO_Level[ULO_ALC_L] = (ResultData & 0x00FF);
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
     Limitdata += (Main_Atten * 0.1);
5416
     Limitdata += (Main_Atten * 0.1);
5230
     ALC_Alarm_TimerSet(TableIndex,Limitdata,ResdBm,UL_Atten);
5417
     ALC_Alarm_TimerSet(TableIndex,Limitdata,ResdBm,UL_Atten);
5231
     IwillGiveAtten = ALC_Calc(TableIndex,CurrentATTENVALUE,Limitdata,ResdBm);
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
     IwillGiveAtten += UL_Atten;
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
     if(ResdBm <= (Limitdata - 3)){
5422
     if(ResdBm <= (Limitdata - 3)){
5236
         if(IwillGiveAtten <= -10){
5423
         if(IwillGiveAtten <= -10){
5237
             IwillGiveAtten += 10;
5424
             IwillGiveAtten += 10;
@@ -5248,9 +5435,9 @@ void ALC_Package_Operate(uint8_t*ULO_ADC_Level,uint8_t* ULO_Level,DET_TABLEUL_st
5248
     if(IwillGiveAtten >= 0){
5435
     if(IwillGiveAtten >= 0){
5249
         IwillGiveAtten = 0;
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
 //    if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten))){
5442
 //    if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten))){
5256
 //    IwillGiveAtten *= 10;
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
 void AGC_Function(){//DL
6125
 void AGC_Function(){//DL
5888
     double ret = 0;
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
     uint16_t crc = 0;
205
     uint16_t crc = 0;
206
     for (uint32_t counter = 0; counter < len; counter++)
206
     for (uint32_t counter = 0; counter < len; counter++)
207
         crc = (uint16_t)((crc << 8) ^ crc16_tab[(uint32_t)(((crc >> 8) ^ buf_ptr[counter]) & 0x00FF)]);
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
     return (crc == checksum ? CHECKSUM_ERROR : NO_ERROR);
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
 //      printf("%d CRC : %x  buf_ptr : %x Counter %d\r\n",a,crc,buf_ptr[counter],counter);
219
 //      printf("%d CRC : %x  buf_ptr : %x Counter %d\r\n",a,crc,buf_ptr[counter],counter);
220
       a++;
220
       a++;
221
     }
221
     }
222
-//    printf("len : %d \r\n",len);
222
+    printf("len : %d \r\n",len);
223
     return crc;
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
     Pol_Delay_us(10);
196
     Pol_Delay_us(10);
197
     HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
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
 void PE43711_UL4_atten_ctrl(uint8_t data){
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
 //        printf("data cnt zero !!!  \r\n");
98
 //        printf("data cnt zero !!!  \r\n");
99
         //RF_Ctrl_Main(&uart_buf[Header]);
99
         //RF_Ctrl_Main(&uart_buf[Header]);
100
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
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
             printf("\r\n[RX]");
102
             printf("\r\n[RX]");
103
             for(int i = 0; i < cnt; i++){
103
             for(int i = 0; i < cnt; i++){
104
                 printf("%02x ",uart_buf[i]);
104
                 printf("%02x ",uart_buf[i]);
@@ -106,6 +106,9 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
106
             printf("                       CNT : %d \r\n",cnt);
106
             printf("                       CNT : %d \r\n",cnt);
107
 #endif // PYJ.2019.07.15_END --
107
 #endif // PYJ.2019.07.15_END --
108
             if(uart_buf[0] == 0xbe){
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
             	Bluecell_Operate(uart_buf);
112
             	Bluecell_Operate(uart_buf);
110
             }else if(uart_buf[0] == MBIC_PREAMBLE0
113
             }else if(uart_buf[0] == MBIC_PREAMBLE0
111
                    &&uart_buf[1] == MBIC_PREAMBLE1
114
                    &&uart_buf[1] == MBIC_PREAMBLE1
@@ -147,11 +150,11 @@ void Uart1_Data_Send(uint8_t* data,uint16_t size){
147
   //HAL_UART_Transmit_IT(&hTerminal, &data[0],size);
150
   //HAL_UART_Transmit_IT(&hTerminal, &data[0],size);
148
 //    printf("data[278] : %x \r\n",data[278]);
151
 //    printf("data[278] : %x \r\n",data[278]);
149
 ////    HAL_Delay(1);   
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
 volatile uint32_t Alarm_UL_Level_TimerOffCnt = 0;
117
 volatile uint32_t Alarm_UL_Level_TimerOffCnt = 0;
118
 volatile uint32_t Alarm_UL_Level_TimerOnCnt = 0;
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