瀏覽代碼

MBIC v01.42

1. FRBT Tracking 상태일 때 Gain Atten 제어 범위 변경 (감소 방향으로만 Gain Atten 설정)
2. ALC OFF 상태일 때 ALC Atten 값에 따른 Gain Atten 범위 설정 (최대 -20dB 이내)
PYJ 4 年之前
父節點
當前提交
873770602d
共有 1 個文件被更改,包括 78 次插入27 次删除
  1. 78 27
      Bluecell_Src/Bluecell_operate.c

+ 78 - 27
Bluecell_Src/Bluecell_operate.c

@@ -2175,6 +2175,7 @@ bool Bluecell_Operate(uint8_t* data){
2175
         break;
2175
         break;
2176
     case Bluecell_ATT_UL1                :
2176
     case Bluecell_ATT_UL1                :
2177
 
2177
 
2178
+#if 0 // PYJ.2020.12.22_BEGIN -- 
2178
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
2179
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
2179
         bluecell_Currdatastatus.ATT_UL1_L =data[BLUECELL_DATA + i++];
2180
         bluecell_Currdatastatus.ATT_UL1_L =data[BLUECELL_DATA + i++];
2180
         if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2181
         if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
@@ -2189,13 +2190,32 @@ bool Bluecell_Operate(uint8_t* data){
2189
             ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
2190
             ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
2190
         }
2191
         }
2191
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2192
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2193
+#else
2194
+        if(bluecell_Currdatastatus.SelfTest == true)break;
2195
+        
2196
+        bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++]; 
2197
+        bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++]; 
2198
+        
2199
+        Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
2200
+        Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
2201
+        
2202
+//        printf("ALC Atten : %d /// UL Atten : %d \r\n",Tmpdata,Tmpdata2);
2203
+        
2204
+        if(Tmpdata + Tmpdata2 <= -200){
2205
+            Tmpdata2 = -200 + (Tmpdata * -1);
2206
+            bluecell_Currdatastatus.ATT_UL1_H = ((Tmpdata2 & 0xFF00) >> 8);
2207
+            bluecell_Currdatastatus.ATT_UL1_L = Tmpdata2 & 0x00FF;                    
2208
+        }
2209
+        UL_ALC_GainAttenSet[ALC_Alarm_UL1_Index] = true;
2210
+        ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
2211
+        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2212
+#endif // PYJ.2020.12.22_END -- 
2192
 
2213
 
2193
 //        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2214
 //        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2194
     
2215
     
2195
         /*
2216
         /*
2196
             Atten Ctrl Function
2217
             Atten Ctrl Function
2197
         */
2218
         */
2198
-		CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2199
         ALCTimerCnt = 0;
2219
         ALCTimerCnt = 0;
2200
         //        printf("bluecell_Currdatastatus.ATT_UL1_H : %x\r\n",bluecell_Currdatastatus.ATT_UL1_H);
2220
         //        printf("bluecell_Currdatastatus.ATT_UL1_H : %x\r\n",bluecell_Currdatastatus.ATT_UL1_H);
2201
         //        printf("bluecell_Currdatastatus.ATT_UL1_L : %x\r\n",bluecell_Currdatastatus.ATT_UL1_L);        
2221
         //        printf("bluecell_Currdatastatus.ATT_UL1_L : %x\r\n",bluecell_Currdatastatus.ATT_UL1_L);        
@@ -2203,7 +2223,7 @@ bool Bluecell_Operate(uint8_t* data){
2203
     case Bluecell_ATT_UL2                :        
2223
     case Bluecell_ATT_UL2                :        
2204
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
2224
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
2205
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
2225
         bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
2206
-        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2226
+//        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2207
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L;
2227
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L;
2208
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
2228
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
2209
             if(Tmpdata + Tmpdata2 <= -200){
2229
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2213,8 +2233,8 @@ bool Bluecell_Operate(uint8_t* data){
2213
             }
2233
             }
2214
             UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
2234
             UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
2215
             ALC_Level_Save[ALC_Alarm_UL2_Index] = bluecell_Currdatastatus.ULO_Level2_H << 8 | bluecell_Currdatastatus.ULO_Level2_L;
2235
             ALC_Level_Save[ALC_Alarm_UL2_Index] = bluecell_Currdatastatus.ULO_Level2_H << 8 | bluecell_Currdatastatus.ULO_Level2_L;
2216
-        }
2217
-        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2236
+//        }
2237
+//        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2218
 
2238
 
2219
 
2239
 
2220
         /*
2240
         /*
@@ -2226,7 +2246,7 @@ bool Bluecell_Operate(uint8_t* data){
2226
     case Bluecell_ATT_UL3                :    
2246
     case Bluecell_ATT_UL3                :    
2227
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2247
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2228
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
2248
         bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
2229
-        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2249
+//        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2230
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L;
2250
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L;
2231
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
2251
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
2232
             if(Tmpdata + Tmpdata2 <= -200){
2252
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2236,8 +2256,8 @@ bool Bluecell_Operate(uint8_t* data){
2236
             }
2256
             }
2237
             UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
2257
             UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
2238
             ALC_Level_Save[ALC_Alarm_UL3_Index] = bluecell_Currdatastatus.ULO_Level3_H << 8 | bluecell_Currdatastatus.ULO_Level3_L;
2258
             ALC_Level_Save[ALC_Alarm_UL3_Index] = bluecell_Currdatastatus.ULO_Level3_H << 8 | bluecell_Currdatastatus.ULO_Level3_L;
2239
-        }
2240
-        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2259
+//        }
2260
+//        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2241
 
2261
 
2242
         /*
2262
         /*
2243
             Atten Ctrl Function
2263
             Atten Ctrl Function
@@ -2248,7 +2268,7 @@ bool Bluecell_Operate(uint8_t* data){
2248
     case Bluecell_ATT_UL4                :        
2268
     case Bluecell_ATT_UL4                :        
2249
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2269
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2250
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
2270
         bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
2251
-        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2271
+//        if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
2252
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L;
2272
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L;
2253
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
2273
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
2254
             if(Tmpdata + Tmpdata2 <= -200){
2274
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2258,8 +2278,8 @@ bool Bluecell_Operate(uint8_t* data){
2258
             }
2278
             }
2259
             UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
2279
             UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
2260
             ALC_Level_Save[ALC_Alarm_UL4_Index] = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;
2280
             ALC_Level_Save[ALC_Alarm_UL4_Index] = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;
2261
-        }
2262
-        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2281
+//        }
2282
+//        CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2263
 
2283
 
2264
         ALCTimerCnt = 0;
2284
         ALCTimerCnt = 0;
2265
 
2285
 
@@ -5605,6 +5625,12 @@ bool MBIC_Operate(uint8_t* data){
5605
                 break;
5625
                 break;
5606
             case  DLI_Gain_Atten1                         :
5626
             case  DLI_Gain_Atten1                         :
5607
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5627
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5628
+                tempdata = bluecell_Currdatastatus.DLI_FRBT_Atten1_H << 8 | bluecell_Currdatastatus.DLI_FRBT_Atten1_L;
5629
+                Tmpdata2 = data[MBIC_PAYLOADSTART + 3] << 8 | data[MBIC_PAYLOADSTART + 4]; 
5630
+                if(tempdata < Tmpdata2){
5631
+                    break;
5632
+                }
5633
+//                printf("DLI Gain Setting Complete: %d \r\n",Tmpdata2);
5608
                 bluecell_Currdatastatus.ATT_DL1_H = data[MBIC_PAYLOADSTART + 3]; 
5634
                 bluecell_Currdatastatus.ATT_DL1_H = data[MBIC_PAYLOADSTART + 3]; 
5609
                 bluecell_Currdatastatus.ATT_DL1_L = data[MBIC_PAYLOADSTART + 4]; 
5635
                 bluecell_Currdatastatus.ATT_DL1_L = data[MBIC_PAYLOADSTART + 4]; 
5610
 
5636
 
@@ -5615,6 +5641,11 @@ bool MBIC_Operate(uint8_t* data){
5615
                 break;
5641
                 break;
5616
             case  DLI_Gain_Atten2                         :
5642
             case  DLI_Gain_Atten2                         :
5617
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5643
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5644
+                tempdata = bluecell_Currdatastatus.DLI_FRBT_Atten2_H << 8 | bluecell_Currdatastatus.DLI_FRBT_Atten2_L;
5645
+                Tmpdata2 = data[MBIC_PAYLOADSTART + 3] << 8 | data[MBIC_PAYLOADSTART + 4]; 
5646
+                if(tempdata < Tmpdata2){
5647
+                    break;
5648
+                }                
5618
                 bluecell_Currdatastatus.ATT_DL2_H = data[MBIC_PAYLOADSTART + 3]; 
5649
                 bluecell_Currdatastatus.ATT_DL2_H = data[MBIC_PAYLOADSTART + 3]; 
5619
                 bluecell_Currdatastatus.ATT_DL2_L = data[MBIC_PAYLOADSTART + 4]; 
5650
                 bluecell_Currdatastatus.ATT_DL2_L = data[MBIC_PAYLOADSTART + 4]; 
5620
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL2_Index] = 0;
5651
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL2_Index] = 0;
@@ -5625,6 +5656,11 @@ bool MBIC_Operate(uint8_t* data){
5625
                 break;
5656
                 break;
5626
             case  DLI_Gain_Atten3                         :
5657
             case  DLI_Gain_Atten3                         :
5627
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5658
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5659
+                tempdata = bluecell_Currdatastatus.DLI_FRBT_Atten3_H << 8 | bluecell_Currdatastatus.DLI_FRBT_Atten3_L;
5660
+                Tmpdata2 = data[MBIC_PAYLOADSTART + 3] << 8 | data[MBIC_PAYLOADSTART + 4]; 
5661
+                if(tempdata < Tmpdata2){
5662
+                    break;
5663
+                }                
5628
                 bluecell_Currdatastatus.ATT_DL3_H = data[MBIC_PAYLOADSTART + 3]; 
5664
                 bluecell_Currdatastatus.ATT_DL3_H = data[MBIC_PAYLOADSTART + 3]; 
5629
                 bluecell_Currdatastatus.ATT_DL3_L = data[MBIC_PAYLOADSTART + 4]; 
5665
                 bluecell_Currdatastatus.ATT_DL3_L = data[MBIC_PAYLOADSTART + 4]; 
5630
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL3_Index] = 0;
5666
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL3_Index] = 0;
@@ -5633,6 +5669,11 @@ bool MBIC_Operate(uint8_t* data){
5633
                 break;
5669
                 break;
5634
             case  DLI_Gain_Atten4                         :
5670
             case  DLI_Gain_Atten4                         :
5635
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5671
                 if(bluecell_Currdatastatus.SelfTest == true || bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING)break;
5672
+                tempdata = bluecell_Currdatastatus.DLI_FRBT_Atten4_H << 8 | bluecell_Currdatastatus.DLI_FRBT_Atten4_L;
5673
+                Tmpdata2 = data[MBIC_PAYLOADSTART + 3] << 8 | data[MBIC_PAYLOADSTART + 4]; 
5674
+                if(tempdata < Tmpdata2){
5675
+                    break;
5676
+                }                
5636
                 bluecell_Currdatastatus.ATT_DL4_H = data[MBIC_PAYLOADSTART + 3]; 
5677
                 bluecell_Currdatastatus.ATT_DL4_H = data[MBIC_PAYLOADSTART + 3]; 
5637
                 bluecell_Currdatastatus.ATT_DL4_L = data[MBIC_PAYLOADSTART + 4]; 
5678
                 bluecell_Currdatastatus.ATT_DL4_L = data[MBIC_PAYLOADSTART + 4]; 
5638
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL4_Index] = 0;
5679
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL4_Index] = 0;
@@ -5865,17 +5906,16 @@ bool MBIC_Operate(uint8_t* data){
5865
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5906
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5866
                 bluecell_Currdatastatus.ATT_UL1_H = data[MBIC_PAYLOADSTART + 3]; 
5907
                 bluecell_Currdatastatus.ATT_UL1_H = data[MBIC_PAYLOADSTART + 3]; 
5867
                 bluecell_Currdatastatus.ATT_UL1_L = data[MBIC_PAYLOADSTART + 4]; 
5908
                 bluecell_Currdatastatus.ATT_UL1_L = data[MBIC_PAYLOADSTART + 4]; 
5868
-                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5869
-                    Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5870
-                    Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5871
-                    if(Tmpdata + Tmpdata2 <= -200){
5872
-                        Tmpdata2 = -200 + (Tmpdata * -1);
5873
-                        bluecell_Currdatastatus.ATT_UL1_H = ((Tmpdata2 & 0xFF00) >> 8);
5874
-                        bluecell_Currdatastatus.ATT_UL1_L = Tmpdata2 & 0x00FF;                    
5875
-                    }
5876
-                    UL_ALC_GainAttenSet[ALC_Alarm_UL1_Index] = true;
5877
-                    ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
5909
+                Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5910
+                Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5911
+//                printf("ALC Atten : %d /// UL Atten : %d \r\n",Tmpdata,Tmpdata2);
5912
+                if(Tmpdata + Tmpdata2 <= -200){
5913
+                    Tmpdata2 = -200 + (Tmpdata * -1);
5914
+                    bluecell_Currdatastatus.ATT_UL1_H = ((Tmpdata2 & 0xFF00) >> 8);
5915
+                    bluecell_Currdatastatus.ATT_UL1_L = Tmpdata2 & 0x00FF;                    
5878
                 }
5916
                 }
5917
+                UL_ALC_GainAttenSet[ALC_Alarm_UL1_Index] = true;
5918
+                ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
5879
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5919
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5880
 
5920
 
5881
                 break;
5921
                 break;
@@ -5883,7 +5923,7 @@ bool MBIC_Operate(uint8_t* data){
5883
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5923
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5884
                 bluecell_Currdatastatus.ATT_UL2_H = data[MBIC_PAYLOADSTART + 3]; 
5924
                 bluecell_Currdatastatus.ATT_UL2_H = data[MBIC_PAYLOADSTART + 3]; 
5885
                 bluecell_Currdatastatus.ATT_UL2_L = data[MBIC_PAYLOADSTART + 4]; 
5925
                 bluecell_Currdatastatus.ATT_UL2_L = data[MBIC_PAYLOADSTART + 4]; 
5886
-                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5926
+//                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5887
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5927
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5888
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5928
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5889
                     if(Tmpdata + Tmpdata2 <= -200){
5929
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5893,7 +5933,7 @@ bool MBIC_Operate(uint8_t* data){
5893
                     }                    
5933
                     }                    
5894
                     UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
5934
                     UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
5895
                     ALC_Level_Save[ALC_Alarm_UL2_Index] = bluecell_Currdatastatus.ULO_Level2_H << 8 | bluecell_Currdatastatus.ULO_Level2_L;
5935
                     ALC_Level_Save[ALC_Alarm_UL2_Index] = bluecell_Currdatastatus.ULO_Level2_H << 8 | bluecell_Currdatastatus.ULO_Level2_L;
5896
-                }
5936
+//                }
5897
             
5937
             
5898
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5938
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5899
 
5939
 
@@ -5902,7 +5942,7 @@ bool MBIC_Operate(uint8_t* data){
5902
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5942
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5903
                 bluecell_Currdatastatus.ATT_UL3_H = data[MBIC_PAYLOADSTART + 3]; 
5943
                 bluecell_Currdatastatus.ATT_UL3_H = data[MBIC_PAYLOADSTART + 3]; 
5904
                 bluecell_Currdatastatus.ATT_UL3_L = data[MBIC_PAYLOADSTART + 4]; 
5944
                 bluecell_Currdatastatus.ATT_UL3_L = data[MBIC_PAYLOADSTART + 4]; 
5905
-                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5945
+//                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5906
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5946
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5907
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5947
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5908
                     if(Tmpdata + Tmpdata2 <= -200){
5948
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5912,7 +5952,7 @@ bool MBIC_Operate(uint8_t* data){
5912
                     }                    
5952
                     }                    
5913
                     UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
5953
                     UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
5914
                     ALC_Level_Save[ALC_Alarm_UL3_Index] = bluecell_Currdatastatus.ULO_Level3_H << 8 | bluecell_Currdatastatus.ULO_Level3_L;
5954
                     ALC_Level_Save[ALC_Alarm_UL3_Index] = bluecell_Currdatastatus.ULO_Level3_H << 8 | bluecell_Currdatastatus.ULO_Level3_L;
5915
-                }
5955
+//                }
5916
             
5956
             
5917
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5957
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5918
 
5958
 
@@ -5921,7 +5961,7 @@ bool MBIC_Operate(uint8_t* data){
5921
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5961
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5922
                 bluecell_Currdatastatus.ATT_UL4_H = data[MBIC_PAYLOADSTART + 3]; 
5962
                 bluecell_Currdatastatus.ATT_UL4_H = data[MBIC_PAYLOADSTART + 3]; 
5923
                 bluecell_Currdatastatus.ATT_UL4_L = data[MBIC_PAYLOADSTART + 4]; 
5963
                 bluecell_Currdatastatus.ATT_UL4_L = data[MBIC_PAYLOADSTART + 4]; 
5924
-                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5964
+//                if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
5925
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5965
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5926
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5966
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5927
                     if(Tmpdata + Tmpdata2 <= -200){
5967
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5931,7 +5971,7 @@ bool MBIC_Operate(uint8_t* data){
5931
                     }                    
5971
                     }                    
5932
                     UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
5972
                     UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
5933
                     ALC_Level_Save[ALC_Alarm_UL4_Index] = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L  ;                      
5973
                     ALC_Level_Save[ALC_Alarm_UL4_Index] = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L  ;                      
5934
-                }
5974
+//                }
5935
 //                printf("data ctrl\r\n");
5975
 //                printf("data ctrl\r\n");
5936
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5976
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5937
 
5977
 
@@ -7636,7 +7676,10 @@ void ALC_Package_Operate(uint8_t*ULO_ADC_Level,uint8_t* ULO_Level,DET_TABLEUL_st
7636
     int16_t GiveAttenPlusULAtten = 0;
7676
     int16_t GiveAttenPlusULAtten = 0;
7637
     int16_t Plus_ResultData = 0;
7677
     int16_t Plus_ResultData = 0;
7638
     static int16_t Prev_IwillGiveAtten[ALC_Alarm_UL_Index_MAX] ={0,};
7678
     static int16_t Prev_IwillGiveAtten[ALC_Alarm_UL_Index_MAX] ={0,};
7639
-    if(*retrycnt > 0)
7679
+
7680
+
7681
+    uint8_t* UL_PathStatus = &bluecell_Currdatastatus.ATT_UL1_PATH ;
7682
+    if(*retrycnt > 0 || UL_PathStatus[TableIndex] == false)
7640
         return;
7683
         return;
7641
 
7684
 
7642
 
7685
 
@@ -8010,6 +8053,13 @@ void AGC_Package_Operate(uint8_t* Threshold,uint8_t* DL_MainAtten,uint8_t Tablei
8010
         int16_t ResultData = 0;
8053
         int16_t ResultData = 0;
8011
         int8_t* AGC_Table;// = &DL_DET_Table_ref[MBIC_Table_DL1_INDEX][TABLE_MAX_VALUE];
8054
         int8_t* AGC_Table;// = &DL_DET_Table_ref[MBIC_Table_DL1_INDEX][TABLE_MAX_VALUE];
8012
         int16_t FRBT_Atten = 0;
8055
         int16_t FRBT_Atten = 0;
8056
+        uint8_t* DL_PathStatus = &bluecell_Currdatastatus.ATT_DL1_PATH ;
8057
+
8058
+
8059
+        if(DL_PathStatus[Tableindex] == false)
8060
+            return;
8061
+
8062
+        
8013
         //static int16_t RefValue[AGC_Alarm_DL_Index_MAX] = {0,};
8063
         //static int16_t RefValue[AGC_Alarm_DL_Index_MAX] = {0,};
8014
         //static float Ref_F_Value[AGC_Alarm_DL_Index_MAX] = {0,};
8064
         //static float Ref_F_Value[AGC_Alarm_DL_Index_MAX] = {0,};
8015
 //         printf("===================%d =====================\r\n",Tableindex);
8065
 //         printf("===================%d =====================\r\n",Tableindex);
@@ -8296,6 +8346,7 @@ void AGC_Function(){//DL
8296
             }
8346
             }
8297
 //            printf("AGC_AlarmSet : %d \r\n",AGC_AlarmSet[AGC_Alarm_DL1_Index+k]);
8347
 //            printf("AGC_AlarmSet : %d \r\n",AGC_AlarmSet[AGC_Alarm_DL1_Index+k]);
8298
         }
8348
         }
8349
+
8299
         AGC_Package_Operate(&bluecell_Currdatastatus.DLI_AGC_Threshold_H,
8350
         AGC_Package_Operate(&bluecell_Currdatastatus.DLI_AGC_Threshold_H,
8300
                             &bluecell_Currdatastatus.ATT_DL3_H,
8351
                             &bluecell_Currdatastatus.ATT_DL3_H,
8301
                             AGC_Alarm_DL3_Index,
8352
                             AGC_Alarm_DL3_Index,