Selaa lähdekoodia

1. DL 및 UL의 동작 기준이 상이함

 - DL의 경우 설정값(AGC 및 Low Alarm) 보다 0.1dB만 높아도 알고리즘이 동작합니다.
 - UL의 경우는 설정값보다 0.5dB가 높아야지만 동작합니다.

2. UL ALC Alarm 3초 유지 적용 안됨.
 - 3초 유지시 발생되도록 수정
PYJ 4 vuotta sitten
vanhempi
commit
c48fc65395
1 muutettua tiedostoa jossa 58 lisäystä ja 18 poistoa
  1. 58 18
      Bluecell_Src/Bluecell_operate.c

+ 58 - 18
Bluecell_Src/Bluecell_operate.c

@@ -6125,6 +6125,7 @@ void DET_LevelAlarmCheck(){
6125 6125
 
6126 6126
 //    printf("Res_DL_dBm[DET_Alarm_DL1_Index] : %d \r\n",Res_DL_dBm[DET_Alarm_DL1_Index]);
6127 6127
     for(int i = 0; i < DET_Alarm_DL_Index_MAX; i++){
6128
+#if 0 // PYJ.2020.10.15_BEGIN -- 
6128 6129
         if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 != 0){
6129 6130
             Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6130 6131
             if(Res_DL_dBm[DET_Alarm_DL1_Index + i] < 0)
@@ -6134,6 +6135,36 @@ void DET_LevelAlarmCheck(){
6134 6135
         }else{
6135 6136
             Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6136 6137
         }
6138
+#else
6139
+    if(Res_DL_dBm[DET_Alarm_DL1_Index + i] > 0){
6140
+        
6141
+        if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 != 0){
6142
+            if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 >= 5){
6143
+                Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6144
+                Res_DL_dBm[DET_Alarm_DL1_Index + i]++;
6145
+            }else{
6146
+                Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6147
+            }
6148
+        }
6149
+        else{
6150
+            Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6151
+        }
6152
+        
6153
+    }else{
6154
+    
6155
+        if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 != 0){
6156
+            if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 <= -5){
6157
+                Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6158
+                Res_DL_dBm[DET_Alarm_DL1_Index + i]--;
6159
+            }else{
6160
+                Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6161
+            }
6162
+        }else{
6163
+            Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6164
+        }
6165
+        
6166
+    }
6167
+#endif // PYJ.2020.10.15_END -- 
6137 6168
     }
6138 6169
 //    printf("Res_DL_dBm[DET_Alarm_DL1_Index] : %d \r\n",Res_DL_dBm[DET_Alarm_DL1_Index]);    
6139 6170
 //    Res_DL_dBm[DET_Alarm_DL1_Index] *= 0.1;
@@ -8083,29 +8114,38 @@ void ALC_Alarm_TimerSet(uint8_t num,int16_t threshold,int16_t CurrDet,int16_t At
8083 8114
     M_Atten = (MainAtten * 0.1);
8084 8115
 //    printf("MainAtten : %d \r\n",MainAtten);
8085 8116
     CurrAtten = Atten * 0.1; // ALC ATTEN
8086
-        if(CurrAtten + M_Atten >= -18){
8087
-            ALC_AlarmSet[num] = false;
8117
+    if(CurrAtten + M_Atten >= -18){
8118
+        ALC_AlarmSet[num] = false;
8088 8119
 //            printf("Alarm 3 \r\n");                
8089
-        }    
8090
-        else if(threshold <= CurrDet){
8091
-            ret = CurrDet - threshold ;
8092
-            ret = Bluecell_TestPro(ret +( CurrAtten * 0.1 * -1));
8093
-            ret *= -1;  
8094
-//            printf("CurrAtten : %d   M_Atten : %d \r\n",CurrAtten,M_Atten);
8095
-            if(CurrAtten + M_Atten <= -20){
8120
+    }    
8121
+    else if(threshold <= CurrDet){
8122
+        ret = CurrDet - threshold ;
8123
+        ret = Bluecell_TestPro(ret +( CurrAtten * 0.1 * -1));
8124
+        ret *= -1;  
8125
+//            printf("CurrDet : %d CurrAtten : %d   M_Atten : %d \r\n",CurrDet,CurrAtten,M_Atten);
8126
+        if(CurrAtten + M_Atten <= -20){
8127
+            if(threshold + 0.5 <= CurrDet){
8096 8128
                 ALC_AlarmSet[num] = true;
8097
-//                printf("Alarm 1 \r\n");
8129
+//                printf("Alarm 1 ON   \r\n");
8130
+            }else{
8131
+                ALC_AlarmSet[num] = false;
8132
+//               printf("Alarm 1 OFF   \r\n");
8133
+
8098 8134
             }
8135
+        }else{
8136
+            ALC_AlarmSet[num] = false;
8137
+//            printf("Alarm 1 OFF\r\n");
8099 8138
         }
8100
-        else if(threshold -2 > CurrDet){
8101
-            if(CurrAtten < 0){
8102
-                ret =  (threshold - 2) - CurrDet ;// -27 ///// - 29
8103
-                ret = Bluecell_TestPro(ret);
8104
-                ret += CurrAtten;
8105
-                ALC_AlarmSet[num] = false; 
8139
+    }
8140
+    else if(threshold -2 > CurrDet){
8141
+        if(CurrAtten < 0){
8142
+            ret =  (threshold - 2) - CurrDet ;// -27 ///// - 29
8143
+            ret = Bluecell_TestPro(ret);
8144
+            ret += CurrAtten;
8145
+            ALC_AlarmSet[num] = false; 
8106 8146
 //                printf("Alarm 2 \r\n");                
8107
-            }
8108 8147
         }
8148
+    }
8109 8149
 //        printf("threshold : %d \r\n",threshold);
8110 8150
 //        printf("Curr Atten : %d    Main Atten : %d    Thre : %d    CurrDet : %d \r\n",
8111 8151
 //        CurrAtten,MainAtten,threshold,CurrDet);
@@ -8320,7 +8360,7 @@ void ALC_Function(){ //DL
8320 8360
                             &bluecell_Currdatastatus.ATT_UL1_H,
8321 8361
                             &bluecell_Currdatastatus.bluecell_User_UL1_H,
8322 8362
                             &bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1);
8323
-#if 1 // PYJ.2020.07.16_BEGIN -- 
8363
+#if 0 // PYJ.2020.07.16_BEGIN -- 
8324 8364
         ALC_Package_Operate(&bluecell_Currdatastatus.ULO_P2_Level2_H,
8325 8365
                             &bluecell_Currdatastatus.ULO_Level2_H,
8326 8366
                             &Det_UL2.Table_Det_15_dBm_H,