Parcourir la source

#if 0 필요없는 Code 제거
알람 표시 할 때 무조건 올림 하여 알람 발생하도록 수정
FRBT 첫 Setting Data 설정 할 수 있도록 변수 추가
AGC를 Atten 있는 상태에서 ON하면 AGC Atten이 갑자기 -15 변하는 문제
FRBT Atten은 이상한 값으로 표시.
FRBT 7부터 Tracking 시작하도록 수정.
- AGC를 ON/OFF를 반복하면 FRBT D-Day가 하루 씩 감소 하는 문제 수정
- AGC를 OFF하면 Running 상태 하는 문제 수정
- AGC를 ON 하면 FRBT를 default 7일부터 다시 시작하면서 Tracking 하는 문제 수정

PYJ il y a 4 ans
Parent
commit
486b7461c9
1 fichiers modifiés avec 103 ajouts et 95 suppressions
  1. 103 95
      Bluecell_Src/Bluecell_operate.c

+ 103 - 95
Bluecell_Src/Bluecell_operate.c

@@ -96,6 +96,8 @@ extern volatile uint32_t SelfTestLifeCnt;
96
 volatile uint8_t Prev_ALC_OnOff = 0;
96
 volatile uint8_t Prev_ALC_OnOff = 0;
97
 volatile uint8_t Prev_AGC_OnOff = 0;
97
 volatile uint8_t Prev_AGC_OnOff = 0;
98
 
98
 
99
+volatile bool timeset_init = false;
100
+
99
 /***************************************************************************************/
101
 /***************************************************************************************/
100
 /*                                  Function                                           */
102
 /*                                  Function                                           */
101
 /***************************************************************************************/
103
 /***************************************************************************************/
@@ -2123,73 +2125,7 @@ bool Bluecell_Operate(uint8_t* data){
2123
             bluecell_Currdatastatus.ULO_ALC_ON_OFF = Prev_ALC_OnOff;
2125
             bluecell_Currdatastatus.ULO_ALC_ON_OFF = Prev_ALC_OnOff;
2124
             bluecell_Currdatastatus.DLI_AGC_ON_OFF = Prev_AGC_OnOff;
2126
             bluecell_Currdatastatus.DLI_AGC_ON_OFF = Prev_AGC_OnOff;
2125
         }
2127
         }
2126
-#if 0 // PYJ.2020.09.03_BEGIN -- 
2127
-        if(bluecell_Currdatastatus.SelfTest == false && bluecell_Currdatastatus.SelfTest != data[BLUECELL_DATA]){
2128
-            bluecell_Currdatastatus.SelfTest_ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
2129
-            bluecell_Currdatastatus.SelfTest_ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
2130
-            bluecell_Currdatastatus.SelfTest_ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
2131
-            bluecell_Currdatastatus.SelfTest_ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
2132
-
2133
-            bluecell_Currdatastatus.SelfTest_ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
2134
-            bluecell_Currdatastatus.SelfTest_ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
2135
-            bluecell_Currdatastatus.SelfTest_ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
2136
-            bluecell_Currdatastatus.SelfTest_ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;                    
2137
-
2138
-            bluecell_Currdatastatus.SelfTest_ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
2139
-            bluecell_Currdatastatus.SelfTest_ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
2140
-            bluecell_Currdatastatus.SelfTest_ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
2141
-            bluecell_Currdatastatus.SelfTest_ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
2142
-
2143
-            bluecell_Currdatastatus.SelfTest_ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
2144
-            bluecell_Currdatastatus.SelfTest_ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
2145
-            bluecell_Currdatastatus.SelfTest_ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
2146
-            bluecell_Currdatastatus.SelfTest_ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;                    
2147
-
2148
-            bluecell_Currdatastatus.ATT_DL1_H = 0;
2149
-            bluecell_Currdatastatus.ATT_DL2_H = 0;
2150
-            bluecell_Currdatastatus.ATT_DL3_H = 0;
2151
-            bluecell_Currdatastatus.ATT_DL4_H = 0;
2152
-
2153
-            bluecell_Currdatastatus.ATT_DL1_L = 0;
2154
-            bluecell_Currdatastatus.ATT_DL2_L = 0;
2155
-            bluecell_Currdatastatus.ATT_DL3_L = 0;
2156
-            bluecell_Currdatastatus.ATT_DL4_L = 0;                    
2157
-
2158
-            bluecell_Currdatastatus.ATT_UL1_H = 0;
2159
-            bluecell_Currdatastatus.ATT_UL2_H = 0;
2160
-            bluecell_Currdatastatus.ATT_UL3_H = 0;
2161
-            bluecell_Currdatastatus.ATT_UL4_H = 0;
2162
-
2163
-            bluecell_Currdatastatus.ATT_UL1_L = 0;
2164
-            bluecell_Currdatastatus.ATT_UL2_L = 0;
2165
-            bluecell_Currdatastatus.ATT_UL3_L = 0;
2166
-            bluecell_Currdatastatus.ATT_UL4_L = 0;                        
2167
-
2168
-            
2169
-        }
2170
-        else{
2171
-            bluecell_Currdatastatus.ATT_DL1_H = bluecell_Currdatastatus.SelfTest_ATT_DL1_H ;
2172
-            bluecell_Currdatastatus.ATT_DL2_H = bluecell_Currdatastatus.SelfTest_ATT_DL2_H ;
2173
-            bluecell_Currdatastatus.ATT_DL3_H = bluecell_Currdatastatus.SelfTest_ATT_DL3_H ;
2174
-            bluecell_Currdatastatus.ATT_DL4_H = bluecell_Currdatastatus.SelfTest_ATT_DL4_H ;
2175
-
2176
-            bluecell_Currdatastatus.ATT_DL1_L = bluecell_Currdatastatus.SelfTest_ATT_DL1_L ;
2177
-            bluecell_Currdatastatus.ATT_DL2_L = bluecell_Currdatastatus.SelfTest_ATT_DL2_L ;
2178
-            bluecell_Currdatastatus.ATT_DL3_L = bluecell_Currdatastatus.SelfTest_ATT_DL3_L ;
2179
-            bluecell_Currdatastatus.ATT_DL4_L = bluecell_Currdatastatus.SelfTest_ATT_DL4_L ;                    
2180
-
2181
-            bluecell_Currdatastatus.ATT_UL1_H = bluecell_Currdatastatus.SelfTest_ATT_UL1_H ;
2182
-            bluecell_Currdatastatus.ATT_UL2_H = bluecell_Currdatastatus.SelfTest_ATT_UL2_H ;
2183
-            bluecell_Currdatastatus.ATT_UL3_H = bluecell_Currdatastatus.SelfTest_ATT_UL3_H ;
2184
-            bluecell_Currdatastatus.ATT_UL4_H = bluecell_Currdatastatus.SelfTest_ATT_UL4_H ;
2185
-
2186
-            bluecell_Currdatastatus.ATT_UL1_L = bluecell_Currdatastatus.SelfTest_ATT_UL1_L ;
2187
-            bluecell_Currdatastatus.ATT_UL2_L = bluecell_Currdatastatus.SelfTest_ATT_UL2_L ;
2188
-            bluecell_Currdatastatus.ATT_UL3_L = bluecell_Currdatastatus.SelfTest_ATT_UL3_L ;
2189
-            bluecell_Currdatastatus.ATT_UL4_L = bluecell_Currdatastatus.SelfTest_ATT_UL4_L ;                    
2190
-
2191
-        }   
2192
-#endif // PYJ.2020.09.03_END --         
2128
+       
2193
 //        printf("bluecell_Currdatastatus.SelfTest : %d \r\n",bluecell_Currdatastatus.SelfTest);
2129
 //        printf("bluecell_Currdatastatus.SelfTest : %d \r\n",bluecell_Currdatastatus.SelfTest);
2194
 		break;
2130
 		break;
2195
     case Bluecell_Path1_GainValue:
2131
     case Bluecell_Path1_GainValue:
@@ -2556,9 +2492,47 @@ bool Bluecell_Operate(uint8_t* data){
2556
         break;
2492
         break;
2557
     case Bluecell_DLI_AGC_ON_OFF:                             
2493
     case Bluecell_DLI_AGC_ON_OFF:                             
2558
         bluecell_Currdatastatus.DLI_AGC_ON_OFF = data[BLUECELL_DATA + i];
2494
         bluecell_Currdatastatus.DLI_AGC_ON_OFF = data[BLUECELL_DATA + i];
2559
-//        printf("AGC ON OFF SET : %d \r\n",bluecell_Currdatastatus.DLI_AGC_ON_OFF);
2560
-        if(bluecell_Currdatastatus.DLI_AGC_ON_OFF == 0)
2495
+        if( bluecell_Currdatastatus.DLI_AGC_ON_OFF == false){
2496
+            AGC_AlarmSet[AGC_Alarm_DL1_Index] = false;
2497
+            AGC_AlarmSet[AGC_Alarm_DL2_Index] = false;
2498
+            AGC_AlarmSet[AGC_Alarm_DL3_Index] = false;
2499
+            AGC_AlarmSet[AGC_Alarm_DL4_Index] = false;
2500
+            for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
2501
+               PrevFRBT_Day[DLI_FRBT_Time_Year + i] = FRBT_Day[DLI_FRBT_Time_Year + i] = 0;
2502
+            }
2503
+
2504
+//                    FRBT_UserCtrl = 0;
2505
+            bluecell_Currdatastatus.DLI_FRBT_Status = FRBT_IDEL;                    
2561
             bluecell_Currdatastatus.ALARM_DLI_AGC_Alarm = 0;
2506
             bluecell_Currdatastatus.ALARM_DLI_AGC_Alarm = 0;
2507
+        }else{
2508
+#if 0 // PYJ.2020.09.15_BEGIN -- 
2509
+            for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
2510
+                StartTimeFRBT_Day[DLI_FRBT_Time_Year + i] = data[MBIC_TIME_0 + i]; /* Curr day */
2511
+            }
2512
+#endif // PYJ.2020.09.15_END -- 
2513
+//                    FRBT_UserCtrl = 1;
2514
+//                    printf("FRBT Tracking START \r\n");
2515
+//                    printf("FRBT Start Time Save : %d Y %d M %d D %d H %d M %d S\r\n",
2516
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Year],
2517
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Month],
2518
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Day],
2519
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Hour],
2520
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Minute],
2521
+//                    StartTimeFRBT_Day[DLI_FRBT_Time_Second]);
2522
+        }
2523
+        bluecell_Currdatastatus.DLI_FRBT_D_Day  = DLI_FRBT_DAY_DEFAULT;
2524
+        DL_AGC_StartAtten[AGC_Alarm_DL1_Index] 
2525
+            = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
2526
+        DL_AGC_StartAtten[AGC_Alarm_DL2_Index] 
2527
+            = bluecell_Currdatastatus.ATT_DL2_H << 8 | bluecell_Currdatastatus.ATT_DL2_L;
2528
+        DL_AGC_StartAtten[AGC_Alarm_DL3_Index] 
2529
+            = bluecell_Currdatastatus.ATT_DL3_H << 8 | bluecell_Currdatastatus.ATT_DL3_L;
2530
+        DL_AGC_StartAtten[AGC_Alarm_DL4_Index] 
2531
+            = bluecell_Currdatastatus.ATT_DL4_H << 8 | bluecell_Currdatastatus.ATT_DL4_L;
2532
+
2533
+        for(int i = 0; i < AGC_Alarm_DL_Index_MAX; i++){
2534
+            DL_PrevIwillgiveAtten[i]= 0;                
2535
+        }
2562
         break;
2536
         break;
2563
     case Bluecell_ULO_ALC_ON_OFF:                             
2537
     case Bluecell_ULO_ALC_ON_OFF:                             
2564
         bluecell_Currdatastatus.ULO_ALC_ON_OFF = data[BLUECELL_DATA + i];
2538
         bluecell_Currdatastatus.ULO_ALC_ON_OFF = data[BLUECELL_DATA + i];
@@ -2787,6 +2761,7 @@ bool Bluecell_Operate(uint8_t* data){
2787
         break;
2761
         break;
2788
     case Bluecell_TimeSetting:
2762
     case Bluecell_TimeSetting:
2789
         TimeSetting(&data[BLUECELL_CRCINDEX]);
2763
         TimeSetting(&data[BLUECELL_CRCINDEX]);
2764
+
2790
 #if 0 // PYJ.2020.07.03_BEGIN -- 
2765
 #if 0 // PYJ.2020.07.03_BEGIN -- 
2791
             for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
2766
             for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
2792
                 FRBT_Day[DLI_FRBT_Time_Year + i] = data[BLUECELL_CRCINDEX + i]; /* Curr day */
2767
                 FRBT_Day[DLI_FRBT_Time_Year + i] = data[BLUECELL_CRCINDEX + i]; /* Curr day */
@@ -2975,7 +2950,7 @@ void HFR_TypeInit(){
2975
     MBIC Request List 
2950
     MBIC Request List 
2976
     Turn off all paths at boot
2951
     Turn off all paths at boot
2977
  */
2952
  */
2978
-   
2953
+
2979
     MBIC_UL_ShutdownCount = &bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1;   
2954
     MBIC_UL_ShutdownCount = &bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1;   
2980
     MBIC_DL_ShutdownCount = &bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1;   
2955
     MBIC_DL_ShutdownCount = &bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1;   
2981
 
2956
 
@@ -4449,7 +4424,11 @@ void TimeSetting(uint8_t* data){
4449
         for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
4424
         for(int i = 0; i < DLI_FRBT_Time_Index_Max; i++){
4450
             FRBT_Day[DLI_FRBT_Time_Year + i] = data[i]; /* Curr day */
4425
             FRBT_Day[DLI_FRBT_Time_Year + i] = data[i]; /* Curr day */
4451
         }
4426
         }
4452
-        
4427
+        if(timeset_init == false){
4428
+            PrevFRBT_Day[DLI_FRBT_Time_Day] = FRBT_Day[DLI_FRBT_Time_Day];
4429
+            timeset_init = true;
4430
+            return;
4431
+        }
4453
 //        printf("BLUECELL TIME APPLY : %d - %d - %d - %d - %d - %d \r\n",        
4432
 //        printf("BLUECELL TIME APPLY : %d - %d - %d - %d - %d - %d \r\n",        
4454
 //        FRBT_Day[DLI_FRBT_Time_Year],
4433
 //        FRBT_Day[DLI_FRBT_Time_Year],
4455
 //        FRBT_Day[DLI_FRBT_Time_Month],
4434
 //        FRBT_Day[DLI_FRBT_Time_Month],
@@ -4930,16 +4909,12 @@ uint8_t* Alarm_Report_Send(uint16_t Alarm_type,uint8_t val){
4930
 
4909
 
4931
     Res_UL_dBm[DET_Alarm_UL4_Index] 
4910
     Res_UL_dBm[DET_Alarm_UL4_Index] 
4932
         = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;//(int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,Det_UL4.Table_Length * 2));
4911
         = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;//(int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,Det_UL4.Table_Length * 2));
4933
-
4934
-    Res_DL_dBm[DET_Alarm_DL1_Index] *= 0.1;
4935
-    Res_DL_dBm[DET_Alarm_DL2_Index] *= 0.1;
4936
-    Res_DL_dBm[DET_Alarm_DL4_Index] *= 0.1;
4937
-    Res_DL_dBm[DET_Alarm_DL3_Index] *= 0.1;
4912
+    for(int i = 0; i < DET_Alarm_DL_Index_MAX; i++)
4913
+        Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
4914
+    
4915
+    for(int i = 0; i < DET_Alarm_UL_Index_MAX; i++)
4916
+        Res_UL_dBm[DET_Alarm_UL1_Index + i] *= 0.1;
4938
     
4917
     
4939
-    Res_UL_dBm[DET_Alarm_UL1_Index] *= 0.1;
4940
-    Res_UL_dBm[DET_Alarm_UL2_Index] *= 0.1;
4941
-    Res_UL_dBm[DET_Alarm_UL4_Index] *= 0.1;
4942
-    Res_UL_dBm[DET_Alarm_UL3_Index] *= 0.1;
4943
 
4918
 
4944
  
4919
  
4945
     switch(Alarm_type){
4920
     switch(Alarm_type){
@@ -5027,7 +5002,7 @@ uint8_t* Alarm_Report_Send(uint16_t Alarm_type,uint8_t val){
5027
     Alarm_ReportData[MBIC_PAYLOADSTART + 44] = 0x03; 
5002
     Alarm_ReportData[MBIC_PAYLOADSTART + 44] = 0x03; 
5028
 //        printf(" Alarm_ReportData[MBIC_PAYLOADSTART + 43] : %x \r\n", Alarm_ReportData[MBIC_PAYLOADSTART + 43]);    
5003
 //        printf(" Alarm_ReportData[MBIC_PAYLOADSTART + 43] : %x \r\n", Alarm_ReportData[MBIC_PAYLOADSTART + 43]);    
5029
     Uart1_Data_Send(&Alarm_ReportData[0],sizeof(Alarm_ReportData));
5004
     Uart1_Data_Send(&Alarm_ReportData[0],sizeof(Alarm_ReportData));
5030
-            printf(" Alarm_ReportData[MBIC_PAYLOADSTART + 42] : %x \r\n", Alarm_ReportData[MBIC_PAYLOADSTART + 42]);
5005
+    printf(" Alarm_ReportData[MBIC_PAYLOADSTART + 42] : %x \r\n", Alarm_ReportData[MBIC_PAYLOADSTART + 42]);
5031
 }
5006
 }
5032
 
5007
 
5033
 bool MBIC_Operate(uint8_t* data){
5008
 bool MBIC_Operate(uint8_t* data){
@@ -5106,6 +5081,9 @@ bool MBIC_Operate(uint8_t* data){
5106
         if(Initialize == false){
5081
         if(Initialize == false){
5107
             Bluecell_DataInit();
5082
             Bluecell_DataInit();
5108
             Bluecell_AttenInitialize();
5083
             Bluecell_AttenInitialize();
5084
+//            for(int i = MBIC_TIME_0; i <= MBIC_TIME_5; i++){
5085
+//                FRBT_Day[DLI_FRBT_Time_Year + (i - MBIC_TIME_0)] = data[i]; /* Curr day */
5086
+//            }        
5109
             Initialize = true;
5087
             Initialize = true;
5110
 
5088
 
5111
         }
5089
         }
@@ -5388,6 +5366,7 @@ bool MBIC_Operate(uint8_t* data){
5388
 //                    StartTimeFRBT_Day[DLI_FRBT_Time_Minute],
5366
 //                    StartTimeFRBT_Day[DLI_FRBT_Time_Minute],
5389
 //                    StartTimeFRBT_Day[DLI_FRBT_Time_Second]);
5367
 //                    StartTimeFRBT_Day[DLI_FRBT_Time_Second]);
5390
                 }
5368
                 }
5369
+                bluecell_Currdatastatus.DLI_FRBT_D_Day  = DLI_FRBT_DAY_DEFAULT;
5391
                 DL_AGC_StartAtten[AGC_Alarm_DL1_Index] 
5370
                 DL_AGC_StartAtten[AGC_Alarm_DL1_Index] 
5392
                     = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
5371
                     = bluecell_Currdatastatus.ATT_DL1_H << 8 | bluecell_Currdatastatus.ATT_DL1_L;
5393
                 DL_AGC_StartAtten[AGC_Alarm_DL2_Index] 
5372
                 DL_AGC_StartAtten[AGC_Alarm_DL2_Index] 
@@ -6014,11 +5993,23 @@ void DET_LevelAlarmCheck(){
6014
     Res_DL_dBm[DET_Alarm_DL4_Index] 
5993
     Res_DL_dBm[DET_Alarm_DL4_Index] 
6015
         = bluecell_Currdatastatus.DLI_Level4_H << 8 | bluecell_Currdatastatus.DLI_Level4_L;//(int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
5994
         = bluecell_Currdatastatus.DLI_Level4_H << 8 | bluecell_Currdatastatus.DLI_Level4_L;//(int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
6016
 
5995
 
6017
-    Res_DL_dBm[DET_Alarm_DL1_Index] *= 0.1;
6018
-    Res_DL_dBm[DET_Alarm_DL2_Index] *= 0.1;
6019
-    Res_DL_dBm[DET_Alarm_DL4_Index] *= 0.1;
6020
-    Res_DL_dBm[DET_Alarm_DL3_Index] *= 0.1;
6021
-
5996
+//    printf("Res_DL_dBm[DET_Alarm_DL1_Index] : %d \r\n",Res_DL_dBm[DET_Alarm_DL1_Index]);
5997
+    for(int i = 0; i < DET_Alarm_DL_Index_MAX; i++){
5998
+        if(Res_DL_dBm[DET_Alarm_DL1_Index + i] % 10 != 0){
5999
+            Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6000
+            if(Res_DL_dBm[DET_Alarm_DL1_Index + i] < 0)
6001
+                Res_DL_dBm[DET_Alarm_DL1_Index + i]--;
6002
+            else
6003
+                Res_DL_dBm[DET_Alarm_DL1_Index + i]++;
6004
+        }else{
6005
+            Res_DL_dBm[DET_Alarm_DL1_Index + i] *= 0.1;
6006
+        }
6007
+    }
6008
+//    printf("Res_DL_dBm[DET_Alarm_DL1_Index] : %d \r\n",Res_DL_dBm[DET_Alarm_DL1_Index]);    
6009
+//    Res_DL_dBm[DET_Alarm_DL1_Index] *= 0.1;
6010
+//    Res_DL_dBm[DET_Alarm_DL2_Index] *= 0.1;
6011
+//    Res_DL_dBm[DET_Alarm_DL4_Index] *= 0.1;
6012
+//    Res_DL_dBm[DET_Alarm_DL3_Index] *= 0.1;
6022
 
6013
 
6023
     ret  = bluecell_Currdatastatus.ULO_P1_Level1_H << 8;
6014
     ret  = bluecell_Currdatastatus.ULO_P1_Level1_H << 8;
6024
     ret += bluecell_Currdatastatus.ULO_P1_Level1_L;   
6015
     ret += bluecell_Currdatastatus.ULO_P1_Level1_L;   
@@ -6050,10 +6041,22 @@ void DET_LevelAlarmCheck(){
6050
     Res_UL_dBm[DET_Alarm_UL4_Index] 
6041
     Res_UL_dBm[DET_Alarm_UL4_Index] 
6051
         = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;//(int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,Det_UL4.Table_Length * 2));
6042
         = bluecell_Currdatastatus.ULO_Level4_H << 8 | bluecell_Currdatastatus.ULO_Level4_L;//(int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,Det_UL4.Table_Length * 2));
6052
 
6043
 
6053
-    Res_UL_dBm[DET_Alarm_UL1_Index] *= 0.1;
6054
-    Res_UL_dBm[DET_Alarm_UL2_Index] *= 0.1;
6055
-    Res_UL_dBm[DET_Alarm_UL3_Index] *= 0.1;
6056
-    Res_UL_dBm[DET_Alarm_UL4_Index] *= 0.1;
6044
+//    Res_UL_dBm[DET_Alarm_UL1_Index] *= 0.1;
6045
+//    Res_UL_dBm[DET_Alarm_UL2_Index] *= 0.1;
6046
+//    Res_UL_dBm[DET_Alarm_UL3_Index] *= 0.1;
6047
+//    Res_UL_dBm[DET_Alarm_UL4_Index] *= 0.1;
6048
+    for(int i = 0; i < DET_Alarm_UL_Index_MAX; i++){
6049
+        if(Res_UL_dBm[DET_Alarm_UL1_Index + i] % 10 != 0){
6050
+            Res_UL_dBm[DET_Alarm_UL1_Index + i] *= 0.1;
6051
+            if(Res_UL_dBm[DET_Alarm_UL1_Index + i] < 0)
6052
+                Res_UL_dBm[DET_Alarm_UL1_Index + i]--;
6053
+            else
6054
+                Res_UL_dBm[DET_Alarm_UL1_Index + i]++;
6055
+        }else{
6056
+            Res_UL_dBm[DET_Alarm_UL1_Index + i] *= 0.1;
6057
+        }
6058
+
6059
+    }
6057
 
6060
 
6058
 
6061
 
6059
     /*
6062
     /*
@@ -6063,6 +6066,7 @@ void DET_LevelAlarmCheck(){
6063
     for(int i = 0 ; i < DET_Alarm_DL_Index_MAX; i++){
6066
     for(int i = 0 ; i < DET_Alarm_DL_Index_MAX; i++){
6064
         if(LimitData_DL_High <= Res_DL_dBm[DET_Alarm_DL1_Index + i]){
6067
         if(LimitData_DL_High <= Res_DL_dBm[DET_Alarm_DL1_Index + i]){
6065
             ADC_Alarm_DL_High_Set[DET_Alarm_DL1_Index + i] = true;
6068
             ADC_Alarm_DL_High_Set[DET_Alarm_DL1_Index + i] = true;
6069
+//            printf("DL High Threadhold : %d |||| DL Det : %d \r\n",LimitData_DL_High,Res_DL_dBm[DET_Alarm_DL1_Index + i]);
6066
 //            printf("ADC_Alarm_DL_High_Set %d ,Value : %d\r\n",DET_Alarm_UL1_Index + i,ADC_Alarm_DL_High_Set[DET_Alarm_UL1_Index + i]);            
6070
 //            printf("ADC_Alarm_DL_High_Set %d ,Value : %d\r\n",DET_Alarm_UL1_Index + i,ADC_Alarm_DL_High_Set[DET_Alarm_UL1_Index + i]);            
6067
         }
6071
         }
6068
         else{
6072
         else{
@@ -8340,15 +8344,16 @@ void AGC_Package_Operate(uint8_t* Threshold,uint8_t* DL_MainAtten,uint8_t Tablei
8340
         if((CurrAtten) < IwillgiveAtten)
8344
         if((CurrAtten) < IwillgiveAtten)
8341
             IwillgiveAtten = (CurrAtten );
8345
             IwillgiveAtten = (CurrAtten );
8342
 
8346
 
8343
-        if(ResdBm > Limitdata &&  DL_PrevIwillgiveAtten[Tableindex] > IwillgiveAtten){
8347
+        if((ResdBm + CurrAtten) > Limitdata &&  DL_PrevIwillgiveAtten[Tableindex] > IwillgiveAtten){
8344
 //            printf("IwillgiveAtten : %d \r\n",IwillgiveAtten);
8348
 //            printf("IwillgiveAtten : %d \r\n",IwillgiveAtten);
8345
             DL_PrevIwillgiveAtten[Tableindex] = IwillgiveAtten;
8349
             DL_PrevIwillgiveAtten[Tableindex] = IwillgiveAtten;
8346
-            IwillgiveAtten = (DL_AGC_StartAtten[Tableindex]*0.1) + IwillgiveAtten;
8350
+//            IwillgiveAtten = (DL_AGC_StartAtten[Tableindex]*0.1) + IwillgiveAtten;
8347
 //            printf("WILLATTEN RET : %d \r\n",IwillgiveAtten);
8351
 //            printf("WILLATTEN RET : %d \r\n",IwillgiveAtten);
8348
             AGC_Alarm_Check(AGC_Alarm_DL1_Index + Tableindex,ret,&DL_Table->Table_Det5_dBm_H,IwillgiveAtten);
8352
             AGC_Alarm_Check(AGC_Alarm_DL1_Index + Tableindex,ret,&DL_Table->Table_Det5_dBm_H,IwillgiveAtten);
8349
 
8353
 
8350
             DL_MainAtten[DLI_AGC_H] = (((IwillgiveAtten * 10) & 0xFF00) >> 8) ;
8354
             DL_MainAtten[DLI_AGC_H] = (((IwillgiveAtten * 10) & 0xFF00) >> 8) ;
8351
             DL_MainAtten[DLI_AGC_L] = (((IwillgiveAtten * 10) & 0x00FF));   
8355
             DL_MainAtten[DLI_AGC_L] = (((IwillgiveAtten * 10) & 0x00FF));   
8356
+//            printf("Apply Curr ATTEN %d \r\n", (int16_t)(DL_MainAtten[DLI_AGC_H] << 8 |  DL_MainAtten[DLI_AGC_L]));
8352
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
8357
             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
8353
         }
8358
         }
8354
         else if(bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING){
8359
         else if(bluecell_Currdatastatus.DLI_FRBT_Status == FRBT_RUNNING){
@@ -8360,7 +8365,8 @@ void AGC_Package_Operate(uint8_t* Threshold,uint8_t* DL_MainAtten,uint8_t Tablei
8360
                 
8365
                 
8361
                 DL_PrevIwillgiveAtten[Tableindex] = IwillgiveAtten;
8366
                 DL_PrevIwillgiveAtten[Tableindex] = IwillgiveAtten;
8362
                 DL_MainAtten[DLI_AGC_H] = (((IwillgiveAtten * 10) & 0xFF00) >> 8) ;
8367
                 DL_MainAtten[DLI_AGC_H] = (((IwillgiveAtten * 10) & 0xFF00) >> 8) ;
8363
-                DL_MainAtten[DLI_AGC_L] = (((IwillgiveAtten * 10) & 0x00FF));   
8368
+                DL_MainAtten[DLI_AGC_L] = (((IwillgiveAtten * 10) & 0x00FF));  
8369
+              
8364
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);            
8370
                 CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);            
8365
             }
8371
             }
8366
         }
8372
         }
@@ -8483,6 +8489,7 @@ void AGC_Function(){//DL
8483
                             &bluecell_Currdatastatus.DLI_Level1_H,
8489
                             &bluecell_Currdatastatus.DLI_Level1_H,
8484
                             &Det_DL1.Table_Det5_dBm_H                        ,
8490
                             &Det_DL1.Table_Det5_dBm_H                        ,
8485
                             &bluecell_Currdatastatus.DLI_FRBT_Atten1_H);
8491
                             &bluecell_Currdatastatus.DLI_FRBT_Atten1_H);
8492
+#if 1 // PYJ.2020.09.15_BEGIN -- 
8486
         AGC_Package_Operate(&bluecell_Currdatastatus.DLI_AGC_Threshold_H,
8493
         AGC_Package_Operate(&bluecell_Currdatastatus.DLI_AGC_Threshold_H,
8487
                             &bluecell_Currdatastatus.ATT_DL2_H,
8494
                             &bluecell_Currdatastatus.ATT_DL2_H,
8488
                             AGC_Alarm_DL2_Index,
8495
                             AGC_Alarm_DL2_Index,
@@ -8504,6 +8511,7 @@ void AGC_Function(){//DL
8504
                             &bluecell_Currdatastatus.DLI_Level4_H,
8511
                             &bluecell_Currdatastatus.DLI_Level4_H,
8505
                             &Det_DL4.Table_Det5_dBm_H,
8512
                             &Det_DL4.Table_Det5_dBm_H,
8506
                             &bluecell_Currdatastatus.DLI_FRBT_Atten4_H);    
8513
                             &bluecell_Currdatastatus.DLI_FRBT_Atten4_H);    
8514
+#endif // PYJ.2020.09.15_END -- 
8507
 
8515
 
8508
         }
8516
         }
8509
         DL_Det_Function(MBIC_Table_DL1_INDEX,&bluecell_Currdatastatus.DLI_P1_Level1_H,&Det_DL1.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level1_H);
8517
         DL_Det_Function(MBIC_Table_DL1_INDEX,&bluecell_Currdatastatus.DLI_P1_Level1_H,&Det_DL1.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level1_H);
@@ -9262,8 +9270,8 @@ void SelfTestTimer_Operate()
9262
     SelfTest_TimerOff(SelfTest4,&bluecell_Currdatastatus.SelfTest);
9270
     SelfTest_TimerOff(SelfTest4,&bluecell_Currdatastatus.SelfTest);
9263
 }
9271
 }
9264
 void FRBT_Operate(){
9272
 void FRBT_Operate(){
9265
-    if(bluecell_Currdatastatus.DLI_FRBT_D_Day == 0  || bluecell_Currdatastatus.DLI_AGC_ON_OFF == false){    /*AGC ON ONLY*/
9266
-        if(FRBT_UserCtrl_Get() == true){
9273
+    if(bluecell_Currdatastatus.DLI_FRBT_D_Day == 0 || bluecell_Currdatastatus.DLI_AGC_ON_OFF == false){    /*AGC ON ONLY*/
9274
+        if(FRBT_UserCtrl_Get() == true || bluecell_Currdatastatus.DLI_AGC_ON_OFF == false){
9267
             bluecell_Currdatastatus.DLI_FRBT_Status = FRBT_IDEL;
9275
             bluecell_Currdatastatus.DLI_FRBT_Status = FRBT_IDEL;
9268
         }else{
9276
         }else{
9269
             bluecell_Currdatastatus.DLI_FRBT_Status = FRBT_RUNNING;
9277
             bluecell_Currdatastatus.DLI_FRBT_Status = FRBT_RUNNING;