Explorar o código

MBIC v01.42

1. FRBT Tracking 상태일 때 Gain Atten 제어 범위 변경 (감소 방향으로만 Gain Atten 설정)
2. ALC OFF 상태일 때 ALC Atten 값에 따른 Gain Atten 범위 설정 (최대 -20dB 이내)
PYJ %!s(int64=4) %!d(string=hai) anos
pai
achega
873770602d
Modificáronse 1 ficheiros con 78 adicións e 27 borrados
  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 2175
         break;
2176 2176
     case Bluecell_ATT_UL1                :
2177 2177
 
2178
+#if 0 // PYJ.2020.12.22_BEGIN -- 
2178 2179
         bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
2179 2180
         bluecell_Currdatastatus.ATT_UL1_L =data[BLUECELL_DATA + i++];
2180 2181
         if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){
@@ -2189,13 +2190,32 @@ bool Bluecell_Operate(uint8_t* data){
2189 2190
             ALC_Level_Save[ALC_Alarm_UL1_Index] = bluecell_Currdatastatus.ULO_Level1_H << 8 | bluecell_Currdatastatus.ULO_Level1_L;
2190 2191
         }
2191 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 2214
 //        printf("LINE : %d Curr ATTEN : %d \r\n",__LINE__,CurrAtten);
2194 2215
     
2195 2216
         /*
2196 2217
             Atten Ctrl Function
2197 2218
         */
2198
-		CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2199 2219
         ALCTimerCnt = 0;
2200 2220
         //        printf("bluecell_Currdatastatus.ATT_UL1_H : %x\r\n",bluecell_Currdatastatus.ATT_UL1_H);
2201 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 2223
     case Bluecell_ATT_UL2                :        
2204 2224
         bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
2205 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 2227
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L;
2208 2228
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
2209 2229
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2213,8 +2233,8 @@ bool Bluecell_Operate(uint8_t* data){
2213 2233
             }
2214 2234
             UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
2215 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 2246
     case Bluecell_ATT_UL3                :    
2227 2247
         bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
2228 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 2250
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L;
2231 2251
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
2232 2252
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2236,8 +2256,8 @@ bool Bluecell_Operate(uint8_t* data){
2236 2256
             }
2237 2257
             UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
2238 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 2263
             Atten Ctrl Function
@@ -2248,7 +2268,7 @@ bool Bluecell_Operate(uint8_t* data){
2248 2268
     case Bluecell_ATT_UL4                :        
2249 2269
         bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
2250 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 2272
             Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L;
2253 2273
             Tmpdata2 = bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;
2254 2274
             if(Tmpdata + Tmpdata2 <= -200){
@@ -2258,8 +2278,8 @@ bool Bluecell_Operate(uint8_t* data){
2258 2278
             }
2259 2279
             UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
2260 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 2284
         ALCTimerCnt = 0;
2265 2285
 
@@ -5605,6 +5625,12 @@ bool MBIC_Operate(uint8_t* data){
5605 5625
                 break;
5606 5626
             case  DLI_Gain_Atten1                         :
5607 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 5634
                 bluecell_Currdatastatus.ATT_DL1_H = data[MBIC_PAYLOADSTART + 3]; 
5609 5635
                 bluecell_Currdatastatus.ATT_DL1_L = data[MBIC_PAYLOADSTART + 4]; 
5610 5636
 
@@ -5615,6 +5641,11 @@ bool MBIC_Operate(uint8_t* data){
5615 5641
                 break;
5616 5642
             case  DLI_Gain_Atten2                         :
5617 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 5649
                 bluecell_Currdatastatus.ATT_DL2_H = data[MBIC_PAYLOADSTART + 3]; 
5619 5650
                 bluecell_Currdatastatus.ATT_DL2_L = data[MBIC_PAYLOADSTART + 4]; 
5620 5651
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL2_Index] = 0;
@@ -5625,6 +5656,11 @@ bool MBIC_Operate(uint8_t* data){
5625 5656
                 break;
5626 5657
             case  DLI_Gain_Atten3                         :
5627 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 5664
                 bluecell_Currdatastatus.ATT_DL3_H = data[MBIC_PAYLOADSTART + 3]; 
5629 5665
                 bluecell_Currdatastatus.ATT_DL3_L = data[MBIC_PAYLOADSTART + 4]; 
5630 5666
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL3_Index] = 0;
@@ -5633,6 +5669,11 @@ bool MBIC_Operate(uint8_t* data){
5633 5669
                 break;
5634 5670
             case  DLI_Gain_Atten4                         :
5635 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 5677
                 bluecell_Currdatastatus.ATT_DL4_H = data[MBIC_PAYLOADSTART + 3]; 
5637 5678
                 bluecell_Currdatastatus.ATT_DL4_L = data[MBIC_PAYLOADSTART + 4]; 
5638 5679
                 DL_PrevIwillgiveAtten[AGC_Alarm_DL4_Index] = 0;
@@ -5865,17 +5906,16 @@ bool MBIC_Operate(uint8_t* data){
5865 5906
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5866 5907
                 bluecell_Currdatastatus.ATT_UL1_H = data[MBIC_PAYLOADSTART + 3]; 
5867 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 5919
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5880 5920
 
5881 5921
                 break;
@@ -5883,7 +5923,7 @@ bool MBIC_Operate(uint8_t* data){
5883 5923
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5884 5924
                 bluecell_Currdatastatus.ATT_UL2_H = data[MBIC_PAYLOADSTART + 3]; 
5885 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 5927
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5888 5928
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5889 5929
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5893,7 +5933,7 @@ bool MBIC_Operate(uint8_t* data){
5893 5933
                     }                    
5894 5934
                     UL_ALC_GainAttenSet[ALC_Alarm_UL2_Index] = true;
5895 5935
                     ALC_Level_Save[ALC_Alarm_UL2_Index] = bluecell_Currdatastatus.ULO_Level2_H << 8 | bluecell_Currdatastatus.ULO_Level2_L;
5896
-                }
5936
+//                }
5897 5937
             
5898 5938
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5899 5939
 
@@ -5902,7 +5942,7 @@ bool MBIC_Operate(uint8_t* data){
5902 5942
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5903 5943
                 bluecell_Currdatastatus.ATT_UL3_H = data[MBIC_PAYLOADSTART + 3]; 
5904 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 5946
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5907 5947
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5908 5948
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5912,7 +5952,7 @@ bool MBIC_Operate(uint8_t* data){
5912 5952
                     }                    
5913 5953
                     UL_ALC_GainAttenSet[ALC_Alarm_UL3_Index] = true;
5914 5954
                     ALC_Level_Save[ALC_Alarm_UL3_Index] = bluecell_Currdatastatus.ULO_Level3_H << 8 | bluecell_Currdatastatus.ULO_Level3_L;
5915
-                }
5955
+//                }
5916 5956
             
5917 5957
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5918 5958
 
@@ -5921,7 +5961,7 @@ bool MBIC_Operate(uint8_t* data){
5921 5961
                 if(bluecell_Currdatastatus.SelfTest == true)break;
5922 5962
                 bluecell_Currdatastatus.ATT_UL4_H = data[MBIC_PAYLOADSTART + 3]; 
5923 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 5965
                     Tmpdata = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L;
5926 5966
                     Tmpdata2 = bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
5927 5967
                     if(Tmpdata + Tmpdata2 <= -200){
@@ -5931,7 +5971,7 @@ bool MBIC_Operate(uint8_t* data){
5931 5971
                     }                    
5932 5972
                     UL_ALC_GainAttenSet[ALC_Alarm_UL4_Index] = true;
5933 5973
                     ALC_Level_Save[ALC_Alarm_UL4_Index] = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L  ;                      
5934
-                }
5974
+//                }
5935 5975
 //                printf("data ctrl\r\n");
5936 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 7676
     int16_t GiveAttenPlusULAtten = 0;
7637 7677
     int16_t Plus_ResultData = 0;
7638 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 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 8053
         int16_t ResultData = 0;
8011 8054
         int8_t* AGC_Table;// = &DL_DET_Table_ref[MBIC_Table_DL1_INDEX][TABLE_MAX_VALUE];
8012 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 8063
         //static int16_t RefValue[AGC_Alarm_DL_Index_MAX] = {0,};
8014 8064
         //static float Ref_F_Value[AGC_Alarm_DL_Index_MAX] = {0,};
8015 8065
 //         printf("===================%d =====================\r\n",Tableindex);
@@ -8296,6 +8346,7 @@ void AGC_Function(){//DL
8296 8346
             }
8297 8347
 //            printf("AGC_AlarmSet : %d \r\n",AGC_AlarmSet[AGC_Alarm_DL1_Index+k]);
8298 8348
         }
8349
+
8299 8350
         AGC_Package_Operate(&bluecell_Currdatastatus.DLI_AGC_Threshold_H,
8300 8351
                             &bluecell_Currdatastatus.ATT_DL3_H,
8301 8352
                             AGC_Alarm_DL3_Index,