Bladeren bron

Det 통합 ,Alarm index 추가

UL Alarm Set Val 추가
PYJ 5 jaren geleden
bovenliggende
commit
a9a41dda25
4 gewijzigde bestanden met toevoegingen van 529 en 328 verwijderingen
  1. 46 32
      Bluecell_Inc/Bluecell_operate.h
  2. 363 286
      Bluecell_Src/Bluecell_operate.c
  3. 4 0
      Inc/main.h
  4. 116 10
      Src/main.c

+ 46 - 32
Bluecell_Inc/Bluecell_operate.h

@@ -635,22 +635,22 @@ typedef struct{
635 635
     uint8_t ATT_UL3_L;
636 636
     uint8_t ATT_UL4_H;
637 637
     uint8_t ATT_UL4_L;
638
-    uint8_t DET_DL1_IN_H;//ADC3   5
639
-    uint8_t DET_DL1_IN_L;//ADC3   5
640
-    uint8_t DET_DL2_IN_H;//ADC3   6 
641
-    uint8_t DET_DL2_IN_L;//ADC3   6
642
-    uint8_t DET_DL3_IN_H;//ADC3   7
643
-    uint8_t DET_DL3_IN_L;//ADC3   7
644
-    uint8_t DET_DL4_IN_H;//ADC3   8   
645
-    uint8_t DET_DL4_IN_L;//ADC3   8
646
-    uint8_t DET_UL1_IN_H;//ADC1   4  
647
-    uint8_t DET_UL1_IN_L;//ADC1   4 
648
-    uint8_t DET_UL2_IN_H;//ADC1   5 
649
-    uint8_t DET_UL2_IN_L;//ADC1   5
650
-    uint8_t DET_UL3_IN_H;//ADC1   6
651
-    uint8_t DET_UL3_IN_L;//ADC1   6
652
-    uint8_t DET_UL4_IN_H;//ADC3   4
653
-    uint8_t DET_UL4_IN_L;//ADC3   4
638
+    uint8_t ULO_Level1_H;
639
+    uint8_t ULO_Level1_L;
640
+    uint8_t ULO_Level2_H;
641
+    uint8_t ULO_Level2_L;
642
+    uint8_t ULO_Level3_H;
643
+    uint8_t ULO_Level3_L;
644
+    uint8_t ULO_Level4_H;
645
+    uint8_t ULO_Level4_L;
646
+    uint8_t DLI_Level1_H;
647
+    uint8_t DLI_Level1_L;
648
+    uint8_t DLI_Level2_H;
649
+    uint8_t DLI_Level2_L;
650
+    uint8_t DLI_Level3_H;
651
+    uint8_t DLI_Level3_L;
652
+    uint8_t DLI_Level4_H;
653
+    uint8_t DLI_Level4_L;    
654 654
     uint8_t BLUECELL_RESERVE1;
655 655
     uint8_t DET_TEMP;
656 656
     uint8_t DLI_AGC_ON_OFF;
@@ -793,22 +793,22 @@ typedef struct{
793 793
     uint8_t ULO_Level_High_Threshold_H;
794 794
     uint8_t ULO_Level_High_Threshold_L;
795 795
     uint8_t ULO_Level_High_Threshold_default;
796
-    uint8_t ULO_Level1_H;
797
-    uint8_t ULO_Level1_L;
798
-    uint8_t ULO_Level2_H;
799
-    uint8_t ULO_Level2_L;
800
-    uint8_t ULO_Level3_H;
801
-    uint8_t ULO_Level3_L;
802
-    uint8_t ULO_Level4_H;
803
-    uint8_t ULO_Level4_L;
804
-    uint8_t DLI_Level1_H;
805
-    uint8_t DLI_Level1_L;
806
-    uint8_t DLI_Level2_H;
807
-    uint8_t DLI_Level2_L;
808
-    uint8_t DLI_Level3_H;
809
-    uint8_t DLI_Level3_L;
810
-    uint8_t DLI_Level4_H;
811
-    uint8_t DLI_Level4_L;
796
+    uint8_t BLUECELL_RESERVE22;//ADC3   5
797
+    uint8_t BLUECELL_RESERVE23;//ADC3   5
798
+    uint8_t BLUECELL_RESERVE24;//ADC3   6 
799
+    uint8_t BLUECELL_RESERVE25;//ADC3   6
800
+    uint8_t BLUECELL_RESERVE26;//ADC3   7
801
+    uint8_t BLUECELL_RESERVE27;//ADC3   7
802
+    uint8_t BLUECELL_RESERVE28;//ADC3   8   
803
+    uint8_t BLUECELL_RESERVE29;//ADC3   8
804
+    uint8_t BLUECELL_RESERVE30;//ADC1   4  
805
+    uint8_t BLUECELL_RESERVE31;//ADC1   4 
806
+    uint8_t BLUECELL_RESERVE32;//ADC1   5 
807
+    uint8_t BLUECELL_RESERVE33;//ADC1   5
808
+    uint8_t BLUECELL_RESERVE34;//ADC1   6
809
+    uint8_t BLUECELL_RESERVE35;//ADC1   6
810
+    uint8_t BLUECELL_RESERVE36;//ADC3   4
811
+    uint8_t BLUECELL_RESERVE37;//ADC3   4
812 812
     uint8_t ULO_Level_High_Alarm1;
813 813
     uint8_t ULO_Level_High_Alarm2;
814 814
     uint8_t ULO_Level_High_Alarm3;
@@ -1104,6 +1104,20 @@ typedef enum{
1104 1104
   Bluecell_DET_DL4_ADC_INDEX_L,
1105 1105
   Bluecell_ADC3_MaxLength,
1106 1106
 }Bluecell_ADC3_Index;
1107
+  typedef enum{
1108
+    DET_Alarm_DL1_Index = 0,
1109
+    DET_Alarm_DL2_Index,
1110
+    DET_Alarm_DL3_Index,
1111
+    DET_Alarm_DL4_Index,
1112
+    DET_Alarm_DL_Index_MAX,
1113
+};
1114
+typedef enum{
1115
+    DET_Alarm_UL1_Index = 0,
1116
+    DET_Alarm_UL2_Index,
1117
+    DET_Alarm_UL3_Index,
1118
+    DET_Alarm_UL4_Index,
1119
+    DET_Alarm_UL_Index_MAX,
1120
+};
1107 1121
 #define ADC1_EA Bluecell_ADC1_MaxLength /2
1108 1122
 #define ADC3_EA Bluecell_ADC3_MaxLength /2
1109 1123
 

+ 363 - 286
Bluecell_Src/Bluecell_operate.c

@@ -7,8 +7,6 @@
7 7
 #include "PE43711.h"
8 8
 #include "eeprom.h"
9 9
 
10
-extern volatile uint32_t LedTimerCnt;
11
-extern volatile uint32_t AdcTimerCnt;
12 10
 
13 11
 /***************************************************************************************/
14 12
 /*                                  Extern Function                                    */
@@ -30,6 +28,13 @@ extern ALL_PE43711_st ALL_ATT;
30 28
 extern volatile uint16_t ADC1valuearray[4][ADC_AVERAGECNT];
31 29
 extern volatile uint16_t ADC3valuearray[5][ADC_AVERAGECNT];
32 30
 
31
+extern volatile uint32_t LedTimerCnt;
32
+extern volatile uint32_t AdcTimerCnt;
33
+extern volatile uint32_t DET_UL_On_AlarmTimerCnt[DET_Alarm_UL_Index_MAX];
34
+extern volatile uint32_t DET_DL_On_AlarmTimerCnt[DET_Alarm_DL_Index_MAX];
35
+extern volatile uint32_t DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL_Index_MAX];
36
+extern volatile uint32_t DET_DL_Off_AlarmTimerCnt[DET_Alarm_DL_Index_MAX];
37
+
33 38
 /***************************************************************************************/
34 39
 /*                                  Function                                           */
35 40
 /***************************************************************************************/
@@ -43,6 +48,8 @@ uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit,uint8_t off
43 48
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit);
44 49
 double PE43711_Double(uint8_t high_bit,uint8_t low_bit);
45 50
 void Booting_LED_Check(void);
51
+double Bluecell_TestPro(double value );
52
+double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
46 53
 
47 54
 
48 55
 
@@ -51,7 +58,7 @@ void Booting_LED_Check(void);
51 58
 /*                                  Valuable                                           */
52 59
 /***************************************************************************************/
53 60
 
54
-
61
+bool Alarm_LED_OnSet = false;
55 62
 uint8_t DataWrite[sizeof(BLUESTATUS_st)] = {0,};
56 63
 uint8_t Txdata[512];
57 64
 int8_t AutoControl_Save[sizeof(ALC_dBm_t)];
@@ -142,13 +149,14 @@ void Boot_LED_Toggle(void){
142 149
   if(LedTimerCnt > 1000){
143 150
     HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,BOOT_LED_Pin);
144 151
     HAL_GPIO_TogglePin(LED_FAIL_GPIO_Port,LED_FAIL_Pin);
145
-    if(AlarmTimerOnCnt > 3000){
152
+//    if(AlarmTimerOnCnt > 3000){
153
+    if(Alarm_LED_OnSet == true){
146 154
         HAL_GPIO_WritePin(LED_ACT_GPIO_Port,LED_ACT_Pin,GPIO_PIN_SET);
147 155
     }else{
148 156
         HAL_GPIO_WritePin(LED_ACT_GPIO_Port,LED_ACT_Pin,GPIO_PIN_RESET);
149 157
     }
158
+    printf("Alarm_LED_OnSet : %d\r\n",Alarm_LED_OnSet);
150 159
     LedTimerCnt = 0;
151
-//    printf("LED OF OFF\r\n");
152 160
   }
153 161
   
154 162
 }
@@ -891,8 +899,8 @@ void Bluecell_StructCpy(uint8_t* dst,uint8_t* src,uint16_t size){
891 899
 }
892 900
 
893 901
 
894
-uint16_t ConvertTo2byte(uint8_t highbit, uint8_t lowbit){
895
-    uint16_t ret = 0;
902
+int16_t ConvertTo2byte(uint8_t highbit, uint8_t lowbit){
903
+    int16_t ret = 0;
896 904
     ret += ((highbit << 8) & 0xFF00);
897 905
     ret += (lowbit & 0x00FF);
898 906
 
@@ -1587,7 +1595,7 @@ bool Bluecell_Operate(uint8_t* data){
1587 1595
         tempdata = (( bluecell_Currdatastatus.DLI_Level_High_Threshold_H << 8) & 0xFF00) ;
1588 1596
         tempdata +=  bluecell_Currdatastatus.DLI_Level_High_Threshold_L ;
1589 1597
         tempdata /= 10;
1590
-        printf("tempdata : %d\r\n",tempdata);
1598
+        printf("DLI_Level_High_Threshold : %d\r\n",tempdata);
1591 1599
 //        bluecell_Currdatastatus.DLI_Level_High_Threshold_H = ((tempdata & 0xFF00) >> 8);
1592 1600
 //        bluecell_Currdatastatus.DLI_Level_High_Threshold_L = (tempdata & 0x00FF);
1593 1601
         break;
@@ -1596,8 +1604,8 @@ bool Bluecell_Operate(uint8_t* data){
1596 1604
         bluecell_Currdatastatus.DLI_Level_Low_Threshold_L = data[BLUECELL_DATA + i++];
1597 1605
         tempdata = (( bluecell_Currdatastatus.DLI_Level_Low_Threshold_H << 8) & 0xFF00) ;
1598 1606
         tempdata +=  bluecell_Currdatastatus.DLI_Level_Low_Threshold_L ;
1599
-//        tempdata /= 10;
1600
-//         printf("tempdata : %d\r\n",tempdata);
1607
+        tempdata /= 10;
1608
+         printf("DLI_Level_Low_Threshold : %d\r\n",tempdata);
1601 1609
 //        bluecell_Currdatastatus.DLI_Level_Low_Threshold_H = ((tempdata & 0xFF00) >> 8);
1602 1610
 //        bluecell_Currdatastatus.DLI_Level_Low_Threshold_L = (tempdata & 0x00FF);    
1603 1611
 
@@ -1636,8 +1644,8 @@ bool Bluecell_Operate(uint8_t* data){
1636 1644
         bluecell_Currdatastatus.ULO_Level_High_Threshold_L = data[BLUECELL_DATA + i++];
1637 1645
         tempdata = (( bluecell_Currdatastatus.ULO_Level_High_Threshold_H << 8) & 0xFF00) ;
1638 1646
         tempdata +=  bluecell_Currdatastatus.ULO_Level_High_Threshold_L ;
1639
-//        tempdata /= 10;
1640
-//         printf("tempdata : %d\r\n",tempdata);
1647
+        tempdata /= 10;
1648
+         printf("ULO_Level_High_Threshold : %d\r\n",tempdata);
1641 1649
 //        bluecell_Currdatastatus.ULO_Level_High_Threshold_H = ((tempdata & 0xFF00) >> 8);
1642 1650
 //        bluecell_Currdatastatus.ULO_Level_High_Threshold_L = (tempdata & 0x00FF);   
1643 1651
 
@@ -1657,7 +1665,7 @@ bool Bluecell_Operate(uint8_t* data){
1657 1665
         tempdata = (( bluecell_Currdatastatus.ULO_ALC_Threshold_H << 8) & 0xFF00) ;
1658 1666
         tempdata +=  bluecell_Currdatastatus.ULO_ALC_Threshold_L ;
1659 1667
         tempdata /= 10;
1660
-        printf("tempdata : %d\r\n",tempdata);
1668
+        printf("ULO_ALC_Threshold : %d\r\n",tempdata);
1661 1669
 //        bluecell_Currdatastatus.ULO_ALC_Threshold_H = ((tempdata & 0xFF00) >> 8);
1662 1670
 //        bluecell_Currdatastatus.ULO_ALC_Threshold_L = (tempdata & 0x00FF);
1663 1671
 
@@ -1945,25 +1953,25 @@ bool MBIC_Operate(uint8_t* data){
1945 1953
         
1946 1954
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Carrier_ON_OFF;
1947 1955
 
1948
-        Temp_ADC = ((bluecell_Currdatastatus.DET_DL1_IN_H << 8) & 0xFF00 
1949
-                   |(bluecell_Currdatastatus.DET_DL1_IN_L));
1956
+        Temp_ADC = ((bluecell_Currdatastatus.DLI_Level1_H << 8) & 0xFF00 
1957
+                   |(bluecell_Currdatastatus.DLI_Level1_L));
1950 1958
         data[MBIC_PAYLOADSTART + i++] = ((Temp_ADC & 0xFF00) >> 8);
1951 1959
         data[MBIC_PAYLOADSTART + i++] = (Temp_ADC & 0x00FF);
1952 1960
         
1953
-        Temp_ADC = ((bluecell_Currdatastatus.DET_DL2_IN_H << 8) & 0xFF00 
1954
-                   |(bluecell_Currdatastatus.DET_DL2_IN_L));
1961
+        Temp_ADC = ((bluecell_Currdatastatus.DLI_Level2_H << 8) & 0xFF00 
1962
+                   |(bluecell_Currdatastatus.DLI_Level2_L));
1955 1963
         data[MBIC_PAYLOADSTART + i++] = ((Temp_ADC & 0xFF00) >> 8);
1956 1964
         data[MBIC_PAYLOADSTART + i++] = (Temp_ADC & 0x00FF);
1957 1965
 
1958 1966
 
1959
-        Temp_ADC = ((bluecell_Currdatastatus.DET_DL3_IN_H << 8) & 0xFF00 
1960
-                   |(bluecell_Currdatastatus.DET_DL3_IN_L));
1967
+        Temp_ADC = ((bluecell_Currdatastatus.DLI_Level3_H << 8) & 0xFF00 
1968
+                   |(bluecell_Currdatastatus.DLI_Level3_L));
1961 1969
 
1962 1970
         data[MBIC_PAYLOADSTART + i++] = ((Temp_ADC & 0xFF00) >> 8);
1963 1971
         data[MBIC_PAYLOADSTART + i++] = (Temp_ADC & 0x00FF);
1964 1972
 
1965
-        Temp_ADC = ((bluecell_Currdatastatus.DET_DL4_IN_H << 8) & 0xFF00 
1966
-                   |(bluecell_Currdatastatus.DET_DL4_IN_L));
1973
+        Temp_ADC = ((bluecell_Currdatastatus.DLI_Level4_H << 8) & 0xFF00 
1974
+                   |(bluecell_Currdatastatus.DLI_Level4_L));
1967 1975
         data[MBIC_PAYLOADSTART + i++] = ((Temp_ADC & 0xFF00) >> 8);
1968 1976
         data[MBIC_PAYLOADSTART + i++] = (Temp_ADC & 0x00FF);
1969 1977
 
@@ -1973,14 +1981,14 @@ bool MBIC_Operate(uint8_t* data){
1973 1981
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ATT_DL3_PATH;
1974 1982
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ATT_DL4_PATH;
1975 1983
 
1976
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL1_IN_H;
1977
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL1_IN_L;
1978
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL2_IN_H;
1979
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL2_IN_L;
1980
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL3_IN_H;
1981
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL3_IN_L;
1982
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL4_IN_H;
1983
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DET_DL4_IN_L;
1984
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level1_H;
1985
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level1_L;
1986
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level2_H;
1987
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level2_L;
1988
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level3_H;
1989
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level3_L;
1990
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level4_H;
1991
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level4_L;
1984 1992
         /*USER == OFFSET */
1985 1993
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.bluecell_User_DL1_H;
1986 1994
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.bluecell_User_DL1_L;
@@ -2002,28 +2010,28 @@ bool MBIC_Operate(uint8_t* data){
2002 2010
 
2003 2011
         /*DLI LEVEL QUESTION START ???? */
2004 2012
 
2005
-        temp  = (bluecell_Currdatastatus.DET_DL1_IN_H << 8 
2006
-              | bluecell_Currdatastatus.DET_DL1_IN_L) * 3.3/4095; 
2013
+        temp  = (bluecell_Currdatastatus.DLI_Level1_H << 8 
2014
+              | bluecell_Currdatastatus.DLI_Level1_L) * 3.3/4095; 
2007 2015
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2008 2016
         Level *= 10;
2009 2017
         bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
2010 2018
         bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
2011
-        temp  = (bluecell_Currdatastatus.DET_DL2_IN_H << 8 
2012
-              | bluecell_Currdatastatus.DET_DL2_IN_L) * 3.3/4095; 
2019
+        temp  = (bluecell_Currdatastatus.DLI_Level2_H << 8 
2020
+              | bluecell_Currdatastatus.DLI_Level2_L) * 3.3/4095; 
2013 2021
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2014 2022
         Level *= 10;
2015 2023
         bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
2016 2024
         bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
2017 2025
         
2018
-        temp  = (bluecell_Currdatastatus.DET_DL3_IN_H << 8 
2019
-              | bluecell_Currdatastatus.DET_DL3_IN_L) * 3.3/4095; 
2026
+        temp  = (bluecell_Currdatastatus.DLI_Level3_H << 8 
2027
+              | bluecell_Currdatastatus.DLI_Level3_L) * 3.3/4095; 
2020 2028
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2021 2029
         Level *= 10;
2022 2030
         bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
2023 2031
         bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
2024 2032
         
2025
-        temp  = (bluecell_Currdatastatus.DET_DL4_IN_H << 8 
2026
-              | bluecell_Currdatastatus.DET_DL4_IN_L) * 3.3/4095; 
2033
+        temp  = (bluecell_Currdatastatus.DLI_Level4_H << 8 
2034
+              | bluecell_Currdatastatus.DLI_Level4_L) * 3.3/4095; 
2027 2035
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2028 2036
         Level *= 10;
2029 2037
         bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
@@ -2116,28 +2124,28 @@ bool MBIC_Operate(uint8_t* data){
2116 2124
         /*ULO LEVEL QUESTION START ???? */
2117 2125
 
2118 2126
 
2119
-        temp  = (bluecell_Currdatastatus.DET_UL1_IN_H << 8 
2120
-              | bluecell_Currdatastatus.DET_UL1_IN_L) * 3.3/4095; 
2127
+        temp  = (bluecell_Currdatastatus.ULO_Level1_H << 8 
2128
+              | bluecell_Currdatastatus.ULO_Level1_L) * 3.3/4095; 
2121 2129
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2122 2130
         Level *= 10;
2123 2131
         bluecell_Currdatastatus.ULO_Level1_H = ((Level & 0xFF00) >> 8);
2124 2132
         bluecell_Currdatastatus.ULO_Level1_L = ((Level & 0xFF00) >> 8);
2125
-        temp  = (bluecell_Currdatastatus.DET_UL2_IN_H << 8 
2126
-              | bluecell_Currdatastatus.DET_UL2_IN_L) * 3.3/4095; 
2133
+        temp  = (bluecell_Currdatastatus.ULO_Level2_H << 8 
2134
+              | bluecell_Currdatastatus.ULO_Level2_L) * 3.3/4095; 
2127 2135
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2128 2136
         Level *= 10;
2129 2137
         bluecell_Currdatastatus.ULO_Level2_H = ((Level & 0xFF00) >> 8);
2130 2138
         bluecell_Currdatastatus.ULO_Level2_L = ((Level & 0xFF00) >> 8);
2131 2139
         
2132
-        temp  = (bluecell_Currdatastatus.DET_UL3_IN_H << 8 
2133
-              | bluecell_Currdatastatus.DET_UL3_IN_L) * 3.3/4095; 
2140
+        temp  = (bluecell_Currdatastatus.ULO_Level3_H << 8 
2141
+              | bluecell_Currdatastatus.ULO_Level3_L) * 3.3/4095; 
2134 2142
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2135 2143
         Level *= 10;
2136 2144
         bluecell_Currdatastatus.ULO_Level3_H = ((Level & 0xFF00) >> 8);
2137 2145
         bluecell_Currdatastatus.ULO_Level3_L = ((Level & 0xFF00) >> 8);
2138 2146
         
2139
-        temp  = (bluecell_Currdatastatus.DET_UL4_IN_H << 8 
2140
-              | bluecell_Currdatastatus.DET_UL4_IN_L) * 3.3/4095; 
2147
+        temp  = (bluecell_Currdatastatus.ULO_Level4_H << 8 
2148
+              | bluecell_Currdatastatus.ULO_Level4_L) * 3.3/4095; 
2141 2149
         Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2142 2150
         Level *= 10;
2143 2151
         bluecell_Currdatastatus.ULO_Level4_H = ((Level & 0xFF00) >> 8);
@@ -2750,6 +2758,119 @@ uint32_t SumFunc(uint16_t* data,uint16_t size){
2750 2758
     return ret;
2751 2759
 }
2752 2760
 
2761
+
2762
+
2763
+
2764
+bool ADC_Alarm_DL_Set[DET_Alarm_DL_Index_MAX] = {false,} ;
2765
+bool ADC_Alarm_UL_Set[DET_Alarm_UL_Index_MAX] = {false,} ;
2766
+void DET_LevelAlarmCheck(){
2767
+    int16_t DL[DET_Alarm_DL_Index_MAX] = {0,};
2768
+    int16_t UL[DET_Alarm_UL_Index_MAX] = {0,};
2769
+    int16_t LimitData_UL_High = 0;
2770
+    
2771
+    int16_t LimitData_DL_High = 0;    
2772
+    int16_t LimitData_DL_Low = 0;    
2773
+    double ret = 0;
2774
+    int8_t Res_DL_dBm[DET_Alarm_DL_Index_MAX] = {0,};
2775
+    int8_t Res_UL_dBm[DET_Alarm_UL_Index_MAX] = {0,};    
2776
+    
2777
+
2778
+    LimitData_UL_High = ConvertTo2byte(bluecell_Currdatastatus.ULO_Level_High_Threshold_H,bluecell_Currdatastatus.ULO_Level_High_Threshold_L) / 10;
2779
+    LimitData_DL_High = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level_High_Threshold_H,bluecell_Currdatastatus.DLI_Level_High_Threshold_L)/ 10;
2780
+    LimitData_DL_Low = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level_Low_Threshold_H,bluecell_Currdatastatus.DLI_Level_Low_Threshold_L)/ 10;
2781
+    DL[DET_Alarm_DL1_Index] = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level1_H,bluecell_Currdatastatus.DLI_Level1_L);
2782
+    DL[DET_Alarm_DL2_Index] = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level2_H,bluecell_Currdatastatus.DLI_Level2_L);
2783
+    DL[DET_Alarm_DL3_Index] = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level3_H,bluecell_Currdatastatus.DLI_Level3_L);
2784
+    DL[DET_Alarm_DL4_Index] = ConvertTo2byte(bluecell_Currdatastatus.DLI_Level4_H,bluecell_Currdatastatus.DLI_Level4_L);
2785
+    UL[DET_Alarm_UL1_Index] = ConvertTo2byte(bluecell_Currdatastatus.ULO_Level1_H,bluecell_Currdatastatus.ULO_Level1_L);
2786
+    UL[DET_Alarm_UL2_Index] = ConvertTo2byte(bluecell_Currdatastatus.ULO_Level2_H,bluecell_Currdatastatus.ULO_Level2_L);
2787
+    UL[DET_Alarm_UL3_Index] = ConvertTo2byte(bluecell_Currdatastatus.ULO_Level3_H,bluecell_Currdatastatus.ULO_Level3_L);
2788
+    UL[DET_Alarm_UL4_Index] = ConvertTo2byte(bluecell_Currdatastatus.ULO_Level4_H,bluecell_Currdatastatus.ULO_Level4_L);
2789
+
2790
+    ret  = bluecell_Currdatastatus.DLI_Level1_H << 8;
2791
+    ret += bluecell_Currdatastatus.DLI_Level1_L;   
2792
+    ret *= 0.001;    
2793
+    Res_DL_dBm[DET_Alarm_DL1_Index] 
2794
+        = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
2795
+    ret  = bluecell_Currdatastatus.DLI_Level2_H << 8;
2796
+    ret += bluecell_Currdatastatus.DLI_Level2_L;   
2797
+    ret *= 0.001;  
2798
+
2799
+    Res_DL_dBm[DET_Alarm_DL2_Index] 
2800
+        = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
2801
+    ret  = bluecell_Currdatastatus.DLI_Level3_H << 8;
2802
+    ret += bluecell_Currdatastatus.DLI_Level3_L;   
2803
+    ret *= 0.001;  
2804
+
2805
+    Res_DL_dBm[DET_Alarm_DL3_Index] 
2806
+        = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
2807
+
2808
+
2809
+    ret  = bluecell_Currdatastatus.DLI_Level4_H << 8;
2810
+    ret += bluecell_Currdatastatus.DLI_Level4_L;   
2811
+    ret *= 0.001;  
2812
+
2813
+    Res_DL_dBm[DET_Alarm_DL4_Index] 
2814
+        = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
2815
+
2816
+
2817
+
2818
+    ret  = bluecell_Currdatastatus.ULO_Level1_H << 8;
2819
+    ret += bluecell_Currdatastatus.ULO_Level1_L;   
2820
+    ret *= 0.001;
2821
+
2822
+    Res_UL_dBm[DET_Alarm_UL1_Index] 
2823
+        = (int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st)));
2824
+
2825
+//    printf("LimitData_UL_High : %d \r\n",LimitData_UL_High);
2826
+//    printf("DET_High : %d \r\n",Res_UL_dBm[DET_Alarm_UL1_Index] );
2827
+
2828
+    ret  = bluecell_Currdatastatus.ULO_Level2_H << 8;
2829
+    ret += bluecell_Currdatastatus.ULO_Level2_L;   
2830
+    ret *= 0.001;
2831
+
2832
+    Res_UL_dBm[DET_Alarm_UL2_Index] 
2833
+        = (int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st)));
2834
+
2835
+    ret  = bluecell_Currdatastatus.ULO_Level3_H << 8;
2836
+    ret += bluecell_Currdatastatus.ULO_Level3_L;   
2837
+    ret *= 0.001;
2838
+
2839
+    Res_UL_dBm[DET_Alarm_UL3_Index] 
2840
+        = (int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st)));
2841
+
2842
+
2843
+    ret  = bluecell_Currdatastatus.ULO_Level4_H << 8;
2844
+    ret += bluecell_Currdatastatus.ULO_Level4_L;   
2845
+    ret *= 0.001;
2846
+
2847
+    Res_UL_dBm[DET_Alarm_UL4_Index] 
2848
+        = (int8_t)Bluecell_TestPro(AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st)));
2849
+
2850
+
2851
+//    printf("LimitData_DL_High : %d \r\n",LimitData_DL_High);    
2852
+//    printf("LimitData_DL_Low : %d \r\n",LimitData_DL_Low);   
2853
+    for(int i = 0 ; i < DET_Alarm_UL_Index_MAX; i++){
2854
+        if(LimitData_UL_High > Res_UL_dBm[DET_Alarm_UL1_Index + i]){
2855
+            ADC_Alarm_UL_Set[DET_Alarm_UL1_Index + i] = true;
2856
+//            printf("ADC_Alarm_UL_Set %d ,Value : %d\r\n",DET_Alarm_UL1_Index + i,ADC_Alarm_UL_Set[DET_Alarm_UL1_Index + i]);
2857
+        }
2858
+        else{
2859
+            ADC_Alarm_UL_Set[DET_Alarm_UL1_Index + i] = false;
2860
+//            printf("ADC_Alarm_UL_Set %d ,Value : %d\r\n",DET_Alarm_UL1_Index + i,ADC_Alarm_UL_Set[DET_Alarm_UL1_Index + i] );            
2861
+        }
2862
+    }
2863
+#if 1 // PYJ.2020.05.27_BEGIN -- 
2864
+    for(int i = 0 ; i < DET_Alarm_DL_Index_MAX; i++){
2865
+        if(LimitData_DL_High > Res_DL_dBm[DET_Alarm_DL1_Index + i]
2866
+         &&LimitData_DL_Low < Res_DL_dBm[DET_Alarm_DL1_Index + i])
2867
+            ADC_Alarm_DL_Set[DET_Alarm_DL1_Index + i] = true;
2868
+        else
2869
+            ADC_Alarm_DL_Set[DET_Alarm_DL1_Index + i] = false;
2870
+    }    
2871
+//    HAL_Delay(1000);
2872
+#endif // PYJ.2020.05.27_END -- 
2873
+}
2753 2874
 void ADC_Check(void){
2754 2875
     //static uint8_t Cnt = 0;
2755 2876
    double ADC1DoubleRet[4];
@@ -2792,33 +2913,33 @@ void ADC_Check(void){
2792 2913
                 ADC3_Average_value[i] = 0;
2793 2914
             }
2794 2915
             
2795
-            bluecell_Currdatastatus.DET_DL1_IN_H 
2916
+            bluecell_Currdatastatus.DLI_Level1_H 
2796 2917
                 = ((ADC3Ret[1] & 0xFF00) >> 8);
2797
-            bluecell_Currdatastatus.DET_DL1_IN_L 
2918
+            bluecell_Currdatastatus.DLI_Level1_L 
2798 2919
                 = ((ADC3Ret[1] & 0x00FF));
2799 2920
             
2800 2921
 
2801
-            bluecell_Currdatastatus.DET_DL2_IN_H 
2922
+            bluecell_Currdatastatus.DLI_Level2_H 
2802 2923
                 = ((ADC3Ret[2] & 0xFF00) >> 8);
2803
-            bluecell_Currdatastatus.DET_DL2_IN_L 
2924
+            bluecell_Currdatastatus.DLI_Level2_L 
2804 2925
                 = ((ADC3Ret[2] & 0x00FF) );
2805 2926
 
2806 2927
                 
2807
-            bluecell_Currdatastatus.DET_DL3_IN_H 
2928
+            bluecell_Currdatastatus.DLI_Level3_H 
2808 2929
                 = ((ADC3Ret[3] & 0xFF00) >> 8);
2809
-            bluecell_Currdatastatus.DET_DL3_IN_L 
2930
+            bluecell_Currdatastatus.DLI_Level3_L 
2810 2931
                 = ((ADC3Ret[3] & 0x00FF) );
2811 2932
 
2812 2933
                 
2813
-            bluecell_Currdatastatus.DET_DL4_IN_H 
2934
+            bluecell_Currdatastatus.DLI_Level4_H 
2814 2935
                 = ((ADC3Ret[4] & 0xFF00) >> 8);
2815
-            bluecell_Currdatastatus.DET_DL4_IN_L 
2936
+            bluecell_Currdatastatus.DLI_Level4_L 
2816 2937
                 = ((ADC3Ret[4] & 0x00FF) );
2817 2938
 
2818 2939
                 
2819
-            bluecell_Currdatastatus.DET_UL4_IN_H 
2940
+            bluecell_Currdatastatus.ULO_Level4_H 
2820 2941
                 = ((ADC3Ret[0] & 0xFF00) >> 8);
2821
-            bluecell_Currdatastatus.DET_UL4_IN_L 
2942
+            bluecell_Currdatastatus.ULO_Level4_L 
2822 2943
                 = ((ADC3Ret[0] & 0x00FF) );
2823 2944
 #endif // PYJ.2020.05.25_END -- 
2824 2945
 #if 0 // PYJ.2020.04.26_BEGIN -- 
@@ -2864,21 +2985,21 @@ void ADC_Check(void){
2864 2985
             ADC1_Average_value[i] = 0;
2865 2986
         }
2866 2987
        
2867
-        bluecell_Currdatastatus.DET_UL1_IN_H 
2988
+        bluecell_Currdatastatus.ULO_Level1_H 
2868 2989
             = ((ADC1Ret[0] & 0xFF00) >> 8);
2869
-        bluecell_Currdatastatus.DET_UL1_IN_L 
2990
+        bluecell_Currdatastatus.ULO_Level1_L 
2870 2991
             = ((ADC1Ret[0] & 0x00FF) );
2871 2992
 
2872 2993
             
2873
-        bluecell_Currdatastatus.DET_UL2_IN_H 
2994
+        bluecell_Currdatastatus.ULO_Level2_H 
2874 2995
             = ((ADC1Ret[1] & 0xFF00) >> 8);
2875
-        bluecell_Currdatastatus.DET_UL2_IN_L 
2996
+        bluecell_Currdatastatus.ULO_Level2_L 
2876 2997
             = ((ADC1Ret[1] & 0x00FF) );
2877 2998
 
2878 2999
             
2879
-        bluecell_Currdatastatus.DET_UL3_IN_H 
3000
+        bluecell_Currdatastatus.ULO_Level3_H 
2880 3001
             = ((ADC1Ret[2] & 0xFF00) >> 8);
2881
-        bluecell_Currdatastatus.DET_UL3_IN_L 
3002
+        bluecell_Currdatastatus.ULO_Level3_L 
2882 3003
             = ((ADC1Ret[2] & 0x00FF) );
2883 3004
 
2884 3005
 //            printf("ADC1_Average_value[%d] : %d / %f \r\n",i,ADC1_Average_value[i],ADC1_Average_value[i]/cnt[i] * Volt_Calc_val);            
@@ -3312,8 +3433,8 @@ void ALC_Function(){ //DL
3312 3433
             //ret 현재 Voltage 값 출력 
3313 3434
             //ret 에 따른 현재 DBM 구현 
3314 3435
             
3315
-            ret  = bluecell_Currdatastatus.DET_UL1_IN_H << 8;
3316
-            ret += bluecell_Currdatastatus.DET_UL1_IN_L;   
3436
+            ret  = bluecell_Currdatastatus.ULO_Level1_H << 8;
3437
+            ret += bluecell_Currdatastatus.ULO_Level1_L;   
3317 3438
             ret *= 0.001;
3318 3439
 
3319 3440
             
@@ -3340,7 +3461,7 @@ void ALC_Function(){ //DL
3340 3461
     //                        printf("ResdBm : UL1 : %f \r\n",ResdBm);
3341 3462
      
3342 3463
 
3343
-                //CurrnALC_MIN_SettingValue = MinusConvert(bluecell_Currdatastatus.DET_UL1_IN_H,CurrnALC_MIN_SettingValue);
3464
+                //CurrnALC_MIN_SettingValue = MinusConvert(bluecell_Currdatastatus.ULO_Level1_H,CurrnALC_MIN_SettingValue);
3344 3465
     //            Limitdata = (( bluecell_Currdatastatus.ATT_UL1_H << 8) & 0xFF00) ;
3345 3466
     //            Limitdata +=  bluecell_Currdatastatus.ATT_UL1_L ;
3346 3467
     //
@@ -3385,8 +3506,8 @@ void ALC_Function(){ //DL
3385 3506
             //ret 현재 Voltage 값 출력 
3386 3507
             //ret 에 따른 현재 DBM 구현 
3387 3508
             
3388
-            ret  = bluecell_Currdatastatus.DET_UL2_IN_H << 8;
3389
-            ret += bluecell_Currdatastatus.DET_UL2_IN_L;   
3509
+            ret  = bluecell_Currdatastatus.ULO_Level2_H << 8;
3510
+            ret += bluecell_Currdatastatus.ULO_Level2_L;   
3390 3511
             ret *= 0.001;
3391 3512
             
3392 3513
             
@@ -3417,8 +3538,8 @@ void ALC_Function(){ //DL
3417 3538
             //ret 현재 Voltage 값 출력 
3418 3539
             //ret 에 따른 현재 DBM 구현 
3419 3540
             
3420
-            ret  = bluecell_Currdatastatus.DET_UL3_IN_H << 8;
3421
-            ret += bluecell_Currdatastatus.DET_UL3_IN_L;   
3541
+            ret  = bluecell_Currdatastatus.ULO_Level3_H << 8;
3542
+            ret += bluecell_Currdatastatus.ULO_Level3_L;   
3422 3543
             ret *= 0.001;
3423 3544
             
3424 3545
             
@@ -3452,8 +3573,8 @@ void ALC_Function(){ //DL
3452 3573
             //ret 현재 Voltage 값 출력 
3453 3574
             //ret 에 따른 현재 DBM 구현 
3454 3575
             
3455
-            ret  = bluecell_Currdatastatus.DET_UL4_IN_H << 8;
3456
-            ret += bluecell_Currdatastatus.DET_UL4_IN_L;   
3576
+            ret  = bluecell_Currdatastatus.ULO_Level4_H << 8;
3577
+            ret += bluecell_Currdatastatus.ULO_Level4_L;   
3457 3578
             ret *= 0.001;
3458 3579
             
3459 3580
             
@@ -3516,19 +3637,19 @@ void AGC_Alarm_Check(uint8_t Path_Index,double AGC_Det,uint8_t* AGC_Table,uint16
3516 3637
 
3517 3638
     if(AGC_Det > TableAdc + step){/*Alarm Enable*/
3518 3639
         AGC_AlarmSet[Path_Index] = true; /*Alarm Check val*/
3519
-        AGC_AlarmTimerSet[Path_Index] = false;/*Alarm Timer Setting Val*/
3520
-        AGCAlarmTimerCnt[Path_Index] = 0;/*Alarm Time Cnt Val*/
3521
-        printf("AGC ALARM ON %d \r\n",Path_Index + 1);
3640
+//        AGC_AlarmTimerSet[Path_Index] = false;/*Alarm Timer Setting Val*/
3641
+//        AGCAlarmTimerCnt[Path_Index] = 0;/*Alarm Time Cnt Val*/
3642
+//        printf("AGC ALARM ON %d \r\n",Path_Index + 1);
3522 3643
     }else{/*Alarm Disable*/
3523
-        if(AGC_AlarmSet[Path_Index] == true && CurrAtten <= 18){/*Alarm Disalbe Condition*/
3524
-            AGC_AlarmTimerSet[Path_Index] = true;
3525
-        }else{/*Alarm Disalbe Fail*/
3526
-            AGC_AlarmTimerSet[Path_Index] = false;
3527
-            AGCAlarmTimerCnt[Path_Index] = 0;
3528
-        }
3529
-        if(AGCAlarmTimerCnt[Path_Index] > 3000){
3644
+//        if(AGC_AlarmSet[Path_Index] == true && CurrAtten <= 18){/*Alarm Disalbe Condition*/
3645
+//            AGC_AlarmTimerSet[Path_Index] = true;
3646
+//        }else{/*Alarm Disalbe Fail*/
3647
+//            AGC_AlarmTimerSet[Path_Index] = false;
3648
+//            AGCAlarmTimerCnt[Path_Index] = 0;
3649
+//        }
3650
+//        if(AGCAlarmTimerCnt[Path_Index] > 3000){
3530 3651
             AGC_AlarmSet[Path_Index] = false;
3531
-        }
3652
+//        }
3532 3653
     }
3533 3654
 
3534 3655
 }
@@ -3558,8 +3679,8 @@ void AGC_Function(){//DL
3558 3679
 #if 1 // PYJ.2020.05.25_BEGIN -- 
3559 3680
                         //ret 현재 Voltage 값 출력 
3560 3681
             //ret 에 따른 현재 DBM 구현 
3561
-            ret  = bluecell_Currdatastatus.DET_DL1_IN_H << 8;
3562
-            ret += bluecell_Currdatastatus.DET_DL1_IN_L;   
3682
+            ret  = bluecell_Currdatastatus.DLI_Level1_H << 8;
3683
+            ret += bluecell_Currdatastatus.DLI_Level1_L;   
3563 3684
             ret *= 0.001;
3564 3685
             
3565 3686
             
@@ -3593,8 +3714,8 @@ void AGC_Function(){//DL
3593 3714
 
3594 3715
 
3595 3716
 
3596
-       ret  = bluecell_Currdatastatus.DET_DL2_IN_H << 8;
3597
-       ret += bluecell_Currdatastatus.DET_DL2_IN_L;   
3717
+       ret  = bluecell_Currdatastatus.DLI_Level2_H << 8;
3718
+       ret += bluecell_Currdatastatus.DLI_Level2_L;   
3598 3719
        ret *= 0.001;
3599 3720
       
3600 3721
        ResdBm = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
@@ -3624,8 +3745,8 @@ void AGC_Function(){//DL
3624 3745
 
3625 3746
 
3626 3747
 
3627
-        ret  = bluecell_Currdatastatus.DET_DL3_IN_H << 8;
3628
-        ret += bluecell_Currdatastatus.DET_DL3_IN_L;   
3748
+        ret  = bluecell_Currdatastatus.DLI_Level3_H << 8;
3749
+        ret += bluecell_Currdatastatus.DLI_Level3_L;   
3629 3750
         ret *= 0.001;
3630 3751
         
3631 3752
         ResdBm = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
@@ -3657,8 +3778,8 @@ void AGC_Function(){//DL
3657 3778
 #endif // PYJ.2020.05.25_END -- 
3658 3779
 
3659 3780
 
3660
-            ret  = bluecell_Currdatastatus.DET_DL4_IN_H << 8;
3661
-            ret += bluecell_Currdatastatus.DET_DL4_IN_L;   
3781
+            ret  = bluecell_Currdatastatus.DLI_Level4_H << 8;
3782
+            ret += bluecell_Currdatastatus.DLI_Level4_L;   
3662 3783
             ret *= 0.001;
3663 3784
             ResdBm = (int8_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEDL_st)));
3664 3785
             for(i = 0; i < sizeof(AGC_dBm_t); i++){
@@ -3702,10 +3823,15 @@ void Alarm_Check(){
3702 3823
     || bluecell_Currdatastatus.ALARM_ULO_ALC_SHTUTDOWN     > 0){
3703 3824
         AlarmTimerOnSet = true;
3704 3825
         AlarmTimerOffSet = false;
3826
+        if(AlarmTimerOnCnt > 3000){
3827
+            Alarm_LED_OnSet  = true;
3828
+        }
3705 3829
     }else{
3706 3830
         AlarmTimerOffSet = true;// False 
3707 3831
         if(AlarmTimerOffCnt > 10000){
3708 3832
             AlarmTimerOnSet = false;
3833
+            Alarm_LED_OnSet = false;
3834
+//            printf("=================AlarmTimerOffCnt=================\r\n");
3709 3835
         }
3710 3836
     }
3711 3837
 
@@ -3719,191 +3845,9 @@ void Alarm_Check(){
3719 3845
     }
3720 3846
     /******************************TEMP END*******************************************/ 
3721 3847
 
3722
-    /******************************ULO LEVEL START*******************************************/ 
3723
-    
3724
-    if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){ // ALC ON 
3725
-#if 0 // PYJ.2020.05.23_BEGIN -- 
3726
-        temp = ((bluecell_Currdatastatus.ULO_ALC_Threshold_H << 8) & 0xFF00);
3727
-        temp += (bluecell_Currdatastatus.ULO_ALC_Threshold_L & 0x00FF);
3728
-        temp /= 10;
3729
-        
3730
-        ret  = bluecell_Currdatastatus.DET_UL1_IN_H << 8;
3731
-        ret += bluecell_Currdatastatus.DET_UL1_IN_L;   
3732
-        ret *= 0.001;
3733
-        ResdBm[0] = AutoControl_ADC_Compare(ret,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
3734
-        ret  = bluecell_Currdatastatus.DET_UL1_IN_H << 8;
3735
-        ret += bluecell_Currdatastatus.DET_UL1_IN_L;   
3736
-        ret *= 0.001;
3737
-        ResdBm[1] = AutoControl_ADC_Compare(ret,&Det_UL2.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
3738
-
3739
-        ret  = bluecell_Currdatastatus.DET_UL1_IN_H << 8;
3740
-        ret += bluecell_Currdatastatus.DET_UL1_IN_L;   
3741
-        ret *= 0.001;
3742
-        ResdBm[2] = AutoControl_ADC_Compare(ret,&Det_UL3.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
3743
-        ret  = bluecell_Currdatastatus.DET_UL1_IN_H << 8;
3744
-        ret += bluecell_Currdatastatus.DET_UL1_IN_L;   
3745
-        ret *= 0.001;
3746
-        ResdBm[3] = AutoControl_ADC_Compare(ret,&Det_UL4.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
3747
-        
3748
-#endif // PYJ.2020.05.23_END -- 
3749
-     /*4개의 디텍 중에 한개라도 상한치를 넘었을 경우 알림 */
3750
-        if(ALC_AlarmSet[ALC_Alarm_UL1_Index] == true){
3751
-             printf("ULO_ALC_Alarm1 OCCUR\r\n");
3752
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P1_LEVEL_HIGH;
3753
-            bluecell_Currdatastatus.ULO_ALC_Alarm1  = true;
3754
-        }else{
3755
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P1_LEVEL_HIGH;
3756
-            bluecell_Currdatastatus.ULO_ALC_Alarm1  = false;
3757
-        }
3758
-
3759
-        if(ALC_AlarmSet[ALC_Alarm_UL2_Index] == true){
3760
-             printf("ULO_ALC_Alarm2 OCCUR\r\n");
3761
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P2_LEVEL_HIGH;
3762
-            bluecell_Currdatastatus.ULO_ALC_Alarm2  = true;
3763
-        }else{
3764
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P2_LEVEL_HIGH;
3765
-            bluecell_Currdatastatus.ULO_ALC_Alarm2  = false;
3766
-        }        
3767
-        if(ALC_AlarmSet[ALC_Alarm_UL3_Index] == true){
3768
-             printf("ULO_ALC_Alarm3 OCCUR\r\n");
3769
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P3_LEVEL_HIGH;
3770
-            bluecell_Currdatastatus.ULO_ALC_Alarm3  = true;
3771
-        }else{
3772
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P3_LEVEL_HIGH;
3773
-            bluecell_Currdatastatus.ULO_ALC_Alarm3  = false;
3774
-        }        
3775
-        if(ALC_AlarmSet[ALC_Alarm_UL4_Index] == true){
3776
-             printf("ULO_ALC_Alarm4 OCCUR\r\n");
3777
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P4_LEVEL_HIGH;
3778
-            bluecell_Currdatastatus.ULO_ALC_Alarm4  = true;
3779
-        }else{
3780
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P4_LEVEL_HIGH;
3781
-            bluecell_Currdatastatus.ULO_ALC_Alarm4  = false;
3782
-        }                
3783
-#if 0 // PYJ.2020.05.23_BEGIN -- 
3784
-        if( temp > ResdBm[1]){
3785
-            printf("ULO_ALC_Alarm2 OCCUR\r\n");
3786
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P2_LEVEL_HIGH;
3787
-            bluecell_Currdatastatus.ULO_ALC_Alarm2  = true;        
3788
-        }else{
3789
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P2_LEVEL_HIGH;
3790
-            bluecell_Currdatastatus.ULO_ALC_Alarm2  = false;        
3791
-
3792
-        }
3793
-        if(temp > ResdBm[2]){
3794
-            printf("ULO_ALC_Alarm3 OCCUR\r\n");
3795
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P3_LEVEL_HIGH;
3796
-            bluecell_Currdatastatus.ULO_ALC_Alarm3  = true;        
3797
-        }else{
3798
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P3_LEVEL_HIGH;
3799
-            bluecell_Currdatastatus.ULO_ALC_Alarm3  = false;        
3800 3848
 
3801
-        }
3802
-        if(temp > ResdBm[3]){
3803
-            printf("ULO_ALC_Alarm4 OCCUR\r\n");
3804
-            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P4_LEVEL_HIGH;
3805
-            bluecell_Currdatastatus.ULO_ALC_Alarm4  = true;        
3806
-        }else{
3807
-            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P4_LEVEL_HIGH;
3808
-            bluecell_Currdatastatus.ULO_ALC_Alarm4  = false;        
3809
-        }
3810
-#endif // PYJ.2020.05.23_END -- 
3811
-#if 0 // PYJ.2020.05.23_BEGIN -- 
3812
-        /******************************ULO LEVEL END*******************************************/ 
3813
-        /******************************ULO ALC Start*******************************************/ 
3814
-        temp = ((bluecell_Currdatastatus.ULO_ALC_Threshold_H << 8) & 0xFF00);
3815
-        temp += (bluecell_Currdatastatus.ULO_ALC_Threshold_L & 0x00FF);
3816
-        if(temp > ResdBm[0]){
3817
-            bluecell_Currdatastatus.ALARM_ULO_ALC_Alarm |= ALARM_ALC_P1;
3818
-        }
3819
-        if( temp > ResdBm[1]){
3820
-            bluecell_Currdatastatus.ALARM_ULO_ALC_Alarm |= ALARM_ALC_P2;
3821
-        }
3822
-        if(temp > ResdBm[2]){
3823
-            bluecell_Currdatastatus.ALARM_ULO_ALC_Alarm |= ALARM_ALC_P3;
3824
-        }
3825
-        if(temp > ResdBm[3]){
3826
-            bluecell_Currdatastatus.ALARM_ULO_ALC_Alarm |= ALARM_ALC_P4;
3827
-        }
3828
-        /******************************ULO ALC END*******************************************/ 
3829
-        temp = ((bluecell_Currdatastatus.ULO_Shutdown_Threshold_H << 8) & 0xFF00);
3830
-        temp += (bluecell_Currdatastatus.ULO_Shutdown_Threshold_L & 0x00FF);    
3831
-        if(temp > ResdBm[0]){
3832
-            bluecell_Currdatastatus.ALARM_ULO_ALC_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P1;
3833
-        }
3834
-        if( temp > ResdBm[1]){
3835
-            bluecell_Currdatastatus.ALARM_ULO_ALC_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P2;
3836
-        }
3837
-        if(temp > ResdBm[2]){
3838
-            bluecell_Currdatastatus.ALARM_ULO_ALC_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P3;
3839
-        }
3840
-        if(temp > ResdBm[3]){
3841
-            bluecell_Currdatastatus.ALARM_ULO_ALC_SHTUTDOWN |= ALARM_ULO_SHUTDOWN_P4;
3842
-        }
3843
-#endif // PYJ.2020.05.23_END -- 
3844
-    }
3845
-    /******************************DLI LEVEL START*******************************************/ 
3849
+    /******************************DLI AGC START******************************************/     
3846 3850
     if(bluecell_Currdatastatus.DLI_AGC_ON_OFF == true){
3847
-#if 0 // PYJ.2020.05.25_BEGIN -- 
3848
-        ret  = bluecell_Currdatastatus.DET_DL1_IN_H << 8;
3849
-        ret += bluecell_Currdatastatus.DET_DL1_IN_L;   
3850
-        ret *= 0.001;
3851
-        ResdBm[0] = AutoControl_ADC_Compare(ret,&Det_DL1.Table_Det5_dBm_H,sizeof(DET_TABLEUL_st));
3852
-
3853
-        ret  = bluecell_Currdatastatus.DET_DL2_IN_H << 8;
3854
-        ret += bluecell_Currdatastatus.DET_DL2_IN_L;   
3855
-        ret *= 0.001;
3856
-        ResdBm[1] = AutoControl_ADC_Compare(ret,&Det_DL2.Table_Det5_dBm_H,sizeof(DET_TABLEUL_st));
3857
-
3858
-        ret  = bluecell_Currdatastatus.DET_DL3_IN_H << 8;
3859
-        ret += bluecell_Currdatastatus.DET_DL3_IN_L;   
3860
-        ret *= 0.001;
3861
-        ResdBm[2] = AutoControl_ADC_Compare(ret,&Det_DL3.Table_Det5_dBm_H,sizeof(DET_TABLEUL_st));
3862
-
3863
-        ret  = bluecell_Currdatastatus.DET_DL4_IN_H << 8;
3864
-        ret += bluecell_Currdatastatus.DET_DL4_IN_L;   
3865
-        ret *= 0.001;
3866
-        ResdBm[3] = AutoControl_ADC_Compare(ret,&Det_DL4.Table_Det5_dBm_H,sizeof(DET_TABLEUL_st));
3867
-
3868
-        temp = ((bluecell_Currdatastatus.DLI_Level_High_Threshold_H << 8) & 0xFF00);
3869
-        temp += (bluecell_Currdatastatus.DLI_Level_High_Threshold_L & 0x00FF);
3870
-        /*4개의 디텍 중에 한개라도 상한치를 넘었을 경우 알림 */
3871
-        if(temp < ResdBm[0]){
3872
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P1_LEVEL_HIGH;
3873
-        }
3874
-        if( temp < ResdBm[1]){
3875
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P2_LEVEL_HIGH;
3876
-        }
3877
-        if(temp < ResdBm[2]){
3878
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P3_LEVEL_HIGH;
3879
-        }
3880
-        if(temp < ResdBm[3]){
3881
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P4_LEVEL_HIGH;
3882
-        }
3883
-#endif // PYJ.2020.05.25_END -- 
3884
-
3885
-#if 0 // PYJ.2020.05.20_BEGIN -- 
3886
-        temp = ((bluecell_Currdatastatus.DLI_Level_Low_Threshold_H << 8) & 0xFF00);
3887
-        temp += (bluecell_Currdatastatus.DLI_Level_Low_Threshold_L & 0x00FF);
3888
-        /*4개의 디텍 중에 한개라도 상한치를 넘었을 경우 알림 */
3889
-        if(temp > ResdBm[0]){
3890
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P1_LEVEL_HIGH;
3891
-        }
3892
-        if( temp > ResdBm[1]){
3893
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P2_LEVEL_HIGH;
3894
-        }
3895
-        if(temp > ResdBm[2]){
3896
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P3_LEVEL_HIGH;
3897
-        }
3898
-        if(temp > ResdBm[3]){
3899
-            bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P4_LEVEL_HIGH;
3900
-        }    
3901
-#endif // PYJ.2020.05.20_END -- 
3902
-        /******************************DLI LEVEL END*******************************************/     
3903
-        /******************************DLI AGC START******************************************/     
3904
-        
3905
-
3906
-        
3907 3851
         temp = ((bluecell_Currdatastatus.ATT_DL1_H << 8) & 0xFF00);
3908 3852
         temp += (bluecell_Currdatastatus.ATT_DL1_L & 0x00FF);
3909 3853
         temp /= 10;
@@ -3943,27 +3887,160 @@ void Alarm_Check(){
3943 3887
         }
3944 3888
     }
3945 3889
     /******************************DLI AGC END******************************************/     
3946
-    /******************************DLI ShutDown Start******************************************/     
3947
-#if 0 // PYJ.2020.05.23_BEGIN -- 
3948
-    temp = ((bluecell_Currdatastatus.DLI_Shutdown_Threshold_H << 8) & 0xFF00);
3949
-    temp += (bluecell_Currdatastatus.DLI_Shutdown_Threshold_L & 0x00FF);
3890
+    /******************************DLI ALC START******************************************/     
3891
+    if(bluecell_Currdatastatus.ULO_ALC_ON_OFF == true){ // ALC ON 
3892
+     /*4개의 디텍 중에 한개라도 상한치를 넘었을 경우 알림 */
3893
+        if(ALC_AlarmSet[ALC_Alarm_UL1_Index] == true){
3894
+             printf("ULO_ALC_Alarm1 OCCUR\r\n");
3895
+            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ALC_P1;
3896
+            bluecell_Currdatastatus.ULO_ALC_Alarm1  = true;
3897
+        }else{
3898
+            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ALC_P1;
3899
+            bluecell_Currdatastatus.ULO_ALC_Alarm1  = false;
3900
+        }
3950 3901
 
3902
+        if(ALC_AlarmSet[ALC_Alarm_UL2_Index] == true){
3903
+             printf("ULO_ALC_Alarm2 OCCUR\r\n");
3904
+            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ALC_P2;
3905
+            bluecell_Currdatastatus.ULO_ALC_Alarm2  = true;
3906
+        }else{
3907
+            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ALC_P2;
3908
+            bluecell_Currdatastatus.ULO_ALC_Alarm2  = false;
3909
+        }        
3910
+        if(ALC_AlarmSet[ALC_Alarm_UL3_Index] == true){
3911
+             printf("ULO_ALC_Alarm3 OCCUR\r\n");
3912
+            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ALC_P3;
3913
+            bluecell_Currdatastatus.ULO_ALC_Alarm3  = true;
3914
+        }else{
3915
+            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ALC_P3;
3916
+            bluecell_Currdatastatus.ULO_ALC_Alarm3  = false;
3917
+        }        
3918
+        if(ALC_AlarmSet[ALC_Alarm_UL4_Index] == true){
3919
+             printf("ULO_ALC_Alarm4 OCCUR\r\n");
3920
+            bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ALC_P4;
3921
+            bluecell_Currdatastatus.ULO_ALC_Alarm4  = true;
3922
+        }else{
3923
+            bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ALC_P4;
3924
+            bluecell_Currdatastatus.ULO_ALC_Alarm4  = false;
3925
+        }                
3926
+    }
3927
+    /******************************DLI ALC END******************************************/
3928
+    /******************************ULO LEVEL START*******************************************/   
3929
+#if 0 // PYJ.2020.05.27_BEGIN -- 
3930
+    if(DET_UL_On_AlarmTimerCnt[DET_Alarm_UL1_Index] >= 3000){
3931
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P1_LEVEL_HIGH;
3932
+        bluecell_Currdatastatus.ULO_Level_High_Alarm1 = true;
3933
+//        printf("ULO_Level_High_Alarm1 OCCUR\r\n");
3934
+    }else if(DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL1_Index] >= 10000){
3935
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P1_LEVEL_HIGH;
3936
+        bluecell_Currdatastatus.ULO_Level_High_Alarm1 = false;
3937
+    }
3938
+    if(DET_UL_On_AlarmTimerCnt[DET_Alarm_UL2_Index] >= 3000){
3939
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P2_LEVEL_HIGH;
3940
+        bluecell_Currdatastatus.ULO_Level_High_Alarm2 = true;
3941
+//        printf("ULO_Level_High_Alarm2 OCCUR\r\n");
3942
+
3943
+    }else{
3944
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P2_LEVEL_HIGH;
3945
+        bluecell_Currdatastatus.ULO_Level_High_Alarm2 = false;
3946
+    }
3947
+    if(DET_UL_On_AlarmTimerCnt[DET_Alarm_UL3_Index] >= 3000){
3948
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P3_LEVEL_HIGH;
3949
+        bluecell_Currdatastatus.ULO_Level_High_Alarm3 = true;
3950
+//        printf("ULO_Level_High_Alarm3 OCCUR\r\n");
3951
+    }else{
3952
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P3_LEVEL_HIGH;
3953
+        bluecell_Currdatastatus.ULO_Level_High_Alarm3 = false;
3954
+    }
3955
+    if(DET_UL_On_AlarmTimerCnt[DET_Alarm_UL4_Index] >= 3000){
3956
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P4_LEVEL_HIGH;
3957
+        bluecell_Currdatastatus.ULO_Level_High_Alarm4 = true;
3958
+//        printf("ULO_Level_High_Alarm4 OCCUR\r\n");
3959
+    }else{
3960
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P4_LEVEL_HIGH;
3961
+        bluecell_Currdatastatus.ULO_Level_High_Alarm4 = false;
3962
+    }    
3963
+#else
3964
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL1_Index] == true){
3965
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P1_LEVEL_HIGH;
3966
+        bluecell_Currdatastatus.ULO_Level_High_Alarm1 = true;
3967
+
3968
+    }else{
3969
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P1_LEVEL_HIGH;
3970
+        bluecell_Currdatastatus.ULO_Level_High_Alarm1 = false;
3971
+    }
3972
+
3973
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL2_Index] == true){
3974
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P2_LEVEL_HIGH;
3975
+        bluecell_Currdatastatus.ULO_Level_High_Alarm2 = true;
3976
+
3977
+    }else{
3978
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P2_LEVEL_HIGH;
3979
+        bluecell_Currdatastatus.ULO_Level_High_Alarm2 = false;
3980
+    }
3981
+
3982
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL3_Index] == true){
3983
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P3_LEVEL_HIGH;
3984
+        bluecell_Currdatastatus.ULO_Level_High_Alarm3 = true;
3985
+
3986
+    }else{
3987
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P3_LEVEL_HIGH;
3988
+        bluecell_Currdatastatus.ULO_Level_High_Alarm3 = false;
3989
+    }
3990
+
3991
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL4_Index] == true){
3992
+        bluecell_Currdatastatus.ALARM_ULO_Level |= ALARM_ULO_P4_LEVEL_HIGH;
3993
+        bluecell_Currdatastatus.ULO_Level_High_Alarm4 = true;
3994
+
3995
+    }else{
3996
+        bluecell_Currdatastatus.ALARM_ULO_Level &= ~ALARM_ULO_P4_LEVEL_HIGH;
3997
+        bluecell_Currdatastatus.ULO_Level_High_Alarm4 = false;
3998
+    }
3999
+
4000
+#endif // PYJ.2020.05.27_END -- 
4001
+    /******************************ULO LEVEL END*******************************************/ 
3951 4002
     
3952
-    if(temp > ResdBm[0]){
3953
-        bluecell_Currdatastatus.ALARM_DLI_AGC_SHTUTDOWN |= ALARM_DLI_SHUTDOWN_P1;
4003
+    /******************************DLI LEVEL START*******************************************/ 
4004
+
4005
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL1_Index] == true){
4006
+        bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P1_LEVEL_HIGH;
4007
+        bluecell_Currdatastatus.DLI_Level_High_Alarm1 = true;
4008
+
4009
+    }else{
4010
+        bluecell_Currdatastatus.ALARM_DLI_Level &= ~ALARM_DLI_P1_LEVEL_HIGH;
4011
+        bluecell_Currdatastatus.DLI_Level_High_Alarm1 = false;
3954 4012
     }
3955
-    if( temp > ResdBm[1]){
3956
-        bluecell_Currdatastatus.ALARM_DLI_AGC_SHTUTDOWN |= ALARM_DLI_SHUTDOWN_P2;
4013
+
4014
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL2_Index] == true){
4015
+        bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P2_LEVEL_HIGH;
4016
+        bluecell_Currdatastatus.DLI_Level_High_Alarm2 = true;
4017
+
4018
+    }else{
4019
+        bluecell_Currdatastatus.ALARM_DLI_Level &= ~ALARM_DLI_P2_LEVEL_HIGH;
4020
+        bluecell_Currdatastatus.DLI_Level_High_Alarm2 = false;
3957 4021
     }
3958
-    if(temp > ResdBm[2]){
3959
-        bluecell_Currdatastatus.ALARM_DLI_AGC_SHTUTDOWN |= ALARM_DLI_SHUTDOWN_P3;
4022
+
4023
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL3_Index] == true){
4024
+        bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P3_LEVEL_HIGH;
4025
+        bluecell_Currdatastatus.DLI_Level_High_Alarm3 = true;
4026
+
4027
+    }else{
4028
+        bluecell_Currdatastatus.ALARM_DLI_Level &= ~ALARM_DLI_P3_LEVEL_HIGH;
4029
+        bluecell_Currdatastatus.DLI_Level_High_Alarm3 = false;
3960 4030
     }
3961
-    if(temp > ResdBm[3]){
3962
-        bluecell_Currdatastatus.ALARM_DLI_AGC_SHTUTDOWN |= ALARM_DLI_SHUTDOWN_P4;
3963
-    }  
3964 4031
 
4032
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL4_Index] == true){
4033
+        bluecell_Currdatastatus.ALARM_DLI_Level |= ALARM_DLI_P4_LEVEL_HIGH;
4034
+        bluecell_Currdatastatus.DLI_Level_High_Alarm4 = true;
4035
+
4036
+    }else{
4037
+        bluecell_Currdatastatus.ALARM_DLI_Level &= ~ALARM_DLI_P4_LEVEL_HIGH;
4038
+        bluecell_Currdatastatus.DLI_Level_High_Alarm4 = false;
4039
+    }     
4040
+    /******************************DLI LEVEL END*******************************************/     
4041
+    
4042
+    /******************************DLI ShutDown Start******************************************/     
3965 4043
     /******************************DLI ShutDown END******************************************/     
3966
-#endif // PYJ.2020.05.23_END -- 
3967 4044
 
3968 4045
     
3969 4046
 }

+ 4 - 0
Inc/main.h

@@ -172,6 +172,9 @@ extern I2C_HandleTypeDef hi2c2;
172 172
 #define ATT_EN_DL1_Pin GPIO_PIN_9
173 173
 #define ATT_EN_DL1_GPIO_Port GPIOB
174 174
 /* USER CODE BEGIN Private defines */
175
+#define MBIC_ON_MAINTAIN_SEC 3000
176
+#define MBIC_OFF_MAINTAIN_SEC 10000
177
+
175 178
 #define ADC_AVERAGECNT 500
176 179
 #define ADC1_CNT 4
177 180
 #define ADC3_CNT 5
@@ -185,3 +188,4 @@ extern I2C_HandleTypeDef hi2c2;
185 188
 #endif /* __MAIN_H */
186 189
 
187 190
 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
191
+

+ 116 - 10
Src/main.c

@@ -75,13 +75,22 @@ volatile uint32_t LDTimerCnt = 0;
75 75
 volatile uint32_t ALCTimerCnt = 0;
76 76
 volatile uint32_t AGCTimerCnt = 0;
77 77
 volatile uint32_t AGCAlarmTimerCnt[AGC_Alarm_DL_Index_MAX] = {0,};
78
+volatile uint32_t DET_UL_On_AlarmTimerCnt[DET_Alarm_UL_Index_MAX] = {0,};
79
+volatile uint32_t DET_DL_On_AlarmTimerCnt[DET_Alarm_DL_Index_MAX] = {0,};
80
+volatile uint32_t DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL_Index_MAX] = {0,};
81
+volatile uint32_t DET_DL_Off_AlarmTimerCnt[DET_Alarm_DL_Index_MAX] = {0,};
82
+
83
+
78 84
 
79 85
 volatile bool     AlarmTimerOnSet = 0;
80 86
 volatile bool     AlarmTimerOffSet = 0;
81
-volatile uint32_t AlarmTimerOnCnt = 0;
82 87
 volatile uint32_t AlarmTimerOffCnt = 0;
88
+volatile uint32_t AlarmTimerOnCnt = 0;
89
+
83 90
 
84 91
 extern bool AGC_AlarmTimerSet[AGC_Alarm_DL_Index_MAX];
92
+extern bool ADC_Alarm_DL_Set[DET_Alarm_DL_Index_MAX];
93
+extern bool ADC_Alarm_UL_Set[DET_Alarm_UL_Index_MAX];
85 94
 
86 95
 
87 96
 
@@ -101,6 +110,7 @@ static void MX_NVIC_Init(void);
101 110
 /* USER CODE BEGIN PFP */
102 111
 extern void Booting_LedInit(void);
103 112
 extern void Bluecell_AttenInitialize();
113
+extern void DET_LevelAlarmCheck();
104 114
 
105 115
 /* USER CODE END PFP */
106 116
 
@@ -264,6 +274,8 @@ void eepromtest_j1(){
264 274
     printf("\r\n");
265 275
 
266 276
 }
277
+extern void DET_LevelAlarmCheck();
278
+
267 279
 #endif // PYJ.2020.04.23_END -- 
268 280
 
269 281
 extern void ALC_Function();
@@ -364,6 +376,7 @@ int main(void)
364 376
     ALC_Function();
365 377
     AGC_Function();
366 378
     Alarm_Check();
379
+    DET_LevelAlarmCheck();
367 380
     /* USER CODE END WHILE */
368 381
 
369 382
     /* USER CODE BEGIN 3 */
@@ -864,21 +877,113 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
864 877
       LDTimerCnt++;
865 878
       ALCTimerCnt++;
866 879
       AGCTimerCnt++;
867
-      if(AGC_AlarmTimerSet[AGC_Alarm_DL1_Index] == true)
880
+      if(AGC_AlarmTimerSet[AGC_Alarm_DL1_Index] == true){
868 881
           AGCAlarmTimerCnt[AGC_Alarm_DL1_Index]++;
869
-      if(AGC_AlarmTimerSet[AGC_Alarm_DL2_Index] == true)
882
+          if(AGCAlarmTimerCnt[AGC_Alarm_DL1_Index] == 0xFFFFFFFF){
883
+            AGCAlarmTimerCnt[AGC_Alarm_DL1_Index] = MBIC_ON_MAINTAIN_SEC;
884
+          }
885
+      }
886
+      if(AGC_AlarmTimerSet[AGC_Alarm_DL2_Index] == true){
870 887
           AGCAlarmTimerCnt[AGC_Alarm_DL2_Index]++;
871
-      if(AGC_AlarmTimerSet[AGC_Alarm_DL3_Index] == true)
888
+          if(AGCAlarmTimerCnt[AGC_Alarm_DL2_Index] == 0xFFFFFFFF){
889
+            AGCAlarmTimerCnt[AGC_Alarm_DL2_Index] = MBIC_ON_MAINTAIN_SEC;
890
+          }
891
+          
892
+      }
893
+      if(AGC_AlarmTimerSet[AGC_Alarm_DL3_Index] == true){
872 894
           AGCAlarmTimerCnt[AGC_Alarm_DL3_Index]++;
873
-      if(AGC_AlarmTimerSet[AGC_Alarm_DL4_Index] == true)
874
-          AGCAlarmTimerCnt[AGC_Alarm_DL4_Index]++;      
895
+          if(AGCAlarmTimerCnt[AGC_Alarm_DL3_Index] == 0xFFFFFFFF){
896
+            AGCAlarmTimerCnt[AGC_Alarm_DL3_Index] = MBIC_ON_MAINTAIN_SEC;
897
+          }          
898
+      }
899
+      if(AGC_AlarmTimerSet[AGC_Alarm_DL4_Index] == true){
900
+          AGCAlarmTimerCnt[AGC_Alarm_DL4_Index]++;  
901
+          if(AGCAlarmTimerCnt[AGC_Alarm_DL4_Index] == 0xFFFFFFFF){
902
+            AGCAlarmTimerCnt[AGC_Alarm_DL4_Index] = MBIC_ON_MAINTAIN_SEC;
903
+          }          
904
+      }
905
+
906
+
907
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL1_Index ] == true){
908
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL1_Index]++;
909
+        DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL1_Index] = 0;
910
+
911
+        if(DET_UL_On_AlarmTimerCnt[DET_Alarm_UL1_Index] == 0xFFFFFFFF){
912
+            DET_UL_On_AlarmTimerCnt[DET_Alarm_UL1_Index] = MBIC_ON_MAINTAIN_SEC;
913
+        }   
914
+        
915
+    }
916
+    else{
917
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL1_Index] = 0;
918
+        DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL1_Index]++;
919
+
920
+        if(DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL1_Index] == 0xFFFFFFFF){
921
+            DET_UL_Off_AlarmTimerCnt[DET_Alarm_UL1_Index] = MBIC_OFF_MAINTAIN_SEC;
922
+        }           
923
+    }
924
+#if 0 // PYJ.2020.05.27_BEGIN -- 
925
+
926
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL2_Index ] == true){
927
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL2_Index]++;
928
+    }
929
+    else{
930
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL2_Index] = 0;
931
+    }
932
+
933
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL3_Index ] == true){
934
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL3_Index]++;
935
+    }
936
+    else{
937
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL3_Index] = 0;
938
+    }
939
+
940
+    if(ADC_Alarm_UL_Set[DET_Alarm_UL4_Index ] == true){
941
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL4_Index]++;
942
+    }
943
+    else{
944
+        DET_UL_On_AlarmTimerCnt[DET_Alarm_UL4_Index] = 0;
945
+    }
946
+
947
+
948
+
949
+
950
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL1_Index ] == true){
951
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL1_Index]++;
952
+    }
953
+    else{
954
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL1_Index] = 0;
955
+    }
956
+
957
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL2_Index ] == true){
958
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL2_Index]++;
959
+    }
960
+    else{
961
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL2_Index] = 0;
962
+    }
963
+
964
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL3_Index ] == true){
965
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL3_Index]++;
966
+    }
967
+    else{
968
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL3_Index] = 0;
969
+    }
875 970
 
971
+    if(ADC_Alarm_DL_Set[DET_Alarm_DL4_Index ] == true){
972
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL4_Index]++;
973
+    }
974
+    else{
975
+        DET_DL_On_AlarmTimerCnt[DET_Alarm_DL4_Index] = 0;
976
+    }
977
+#endif // PYJ.2020.05.27_END -- 
978
+
979
+    
876 980
       /*3 Sec Time Cnt */
877 981
       if(AlarmTimerOnSet == true){
878 982
         if(AlarmTimerOnCnt == 0xFFFFFFFF)
879
-            AlarmTimerOnCnt = 3000;
880
-        else
983
+            AlarmTimerOnCnt = MBIC_ON_MAINTAIN_SEC;
984
+        else{
881 985
             AlarmTimerOnCnt++;
986
+        }
882 987
       }
883 988
       else{
884 989
         AlarmTimerOnCnt = 0;
@@ -888,9 +993,10 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
888 993
       /*10 Sec Time Cnt*/
889 994
       if(AlarmTimerOffSet == true){
890 995
         if(AlarmTimerOffCnt == 0xFFFFFFFF)
891
-            AlarmTimerOffCnt = 10000;
892
-        else
996
+            AlarmTimerOffCnt = MBIC_OFF_MAINTAIN_SEC;
997
+        else{
893 998
             AlarmTimerOffCnt++;
999
+        }
894 1000
       }
895 1001
       else{
896 1002
         AlarmTimerOffCnt = 0;