Browse Source

ALC 알람 설정 함수 추가 / MBIC Data Send 할 때 Alarm 표시 변수 수정 /ALC CALC 에서 Alarm 셋팅 해주는 변수 제거 / ALC 동작 안정화 작업중 ... /

PYJ 5 years ago
parent
commit
a101982fff
1 changed files with 45 additions and 24 deletions
  1. 45 24
      Bluecell_Src/Bluecell_operate.c

+ 45 - 24
Bluecell_Src/Bluecell_operate.c

@@ -96,6 +96,7 @@ double PE43711_Double(uint8_t high_bit,uint8_t low_bit);
96 96
 void Booting_LED_Check(void);
97 97
 double Bluecell_TestPro(double value );
98 98
 double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size,int8_t* RefTable_Data);
99
+void ALC_Alarm_TimerSet(uint8_t num,int16_t threshold,int16_t CurrDet,int16_t CurrAtten);
99 100
 
100 101
 
101 102
 
@@ -2671,7 +2672,7 @@ uint32_t MBIC_DataSend(uint8_t* data){
2671 2672
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_Level;
2672 2673
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_SHTUTDOWN;
2673 2674
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_ULO_Level;
2674
-    data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_ULO_SHTUTDOWN;
2675
+    data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_ULO_ALC_Alarm;
2675 2676
     
2676 2677
     /*ALARM BIT MASK*/
2677 2678
     data[MBIC_PAYLOADSTART + i++] = MBIC_AID;
@@ -4955,7 +4956,9 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
4955 4956
         
4956 4957
 //        printf("2. %f : %f - %d\r\n",ret,CurrDet,threshold);
4957 4958
         ret = Bluecell_TestPro(ret +( CurrAtten * -1));
4958
-        ret *= -1;        
4959
+        ret *= -1;  
4960
+//        if(CurrAtten <= -20)
4961
+//            ALC_AlarmSet[num] = true;
4959 4962
     }
4960 4963
     else if(threshold -2 > CurrDet){
4961 4964
         if(CurrAtten < 0){
@@ -4968,6 +4971,8 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
4968 4971
 //             ret *= -1;     
4969 4972
              
4970 4973
 //            printf("4.ret : %f\r\n",ret);
4974
+//            ALC_AlarmSet[num] = false; 
4975
+
4971 4976
         }
4972 4977
          
4973 4978
     }
@@ -4977,18 +4982,38 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
4977 4982
     if(ret < -20){
4978 4983
 //        printf("5. ret1 : %f \r\n",ret);
4979 4984
         ret = -20;
4980
-        ALC_AlarmSet[num] = true;
4985
+        
4981 4986
     }else{
4982 4987
         if(ret > 0){
4983 4988
 //            printf("6. ret1 : %f \r\n",ret);
4984 4989
             ret = 0;
4985 4990
         }
4986
-        ALC_AlarmSet[num] = false; 
4991
+       
4987 4992
     }
4988 4993
 //    printf("ret7 : %f \r\n",ret);
4989 4994
     return ret * 10;
4990 4995
 }
4991 4996
 #define UL_DL_DATASEND_MULTIPLE 10
4997
+void ALC_Alarm_TimerSet(uint8_t num,int16_t threshold,int16_t CurrDet,int16_t Atten){
4998
+    int16_t ret =0;
4999
+    int16_t CurrAtten = 0;
5000
+    CurrAtten = Atten * 0.1;
5001
+        if(threshold < CurrDet){
5002
+            ret = CurrDet - threshold ;
5003
+            ret = Bluecell_TestPro(ret +( CurrAtten / 10 * -1));
5004
+            ret *= -1;  
5005
+            if(CurrAtten <= -20)
5006
+                ALC_AlarmSet[num] = true;
5007
+        }
5008
+        else if(threshold -2 > CurrDet){
5009
+            if(CurrAtten < 0){
5010
+                ret =  (threshold - 2) - CurrDet ;// -27 ///// - 29
5011
+                ret = Bluecell_TestPro(ret);
5012
+                ret += CurrAtten;
5013
+                ALC_AlarmSet[num] = false; 
5014
+            }
5015
+        }
5016
+}
4992 5017
 void ALC_Function(){ //DL 
4993 5018
     //double Volt_Calc_val = 3.3 / 4095;
4994 5019
     //double tempret = 0;
@@ -5081,12 +5106,15 @@ void ALC_Function(){ //DL
5081 5106
     //            Limitdata /= 10;
5082 5107
 
5083 5108
 //                printf("CurrentATTENVALUE : %f\r\n",CurrentATTENVALUE);  
5109
+//                CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L);
5084 5110
 
5111
+////                CurrentATTENVALUE = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H;
5085 5112
                 bluecell_Currdatastatus.ULO_Level1_H = ((int16_t)ResultData & 0xFF00) >> 8;
5086 5113
                 bluecell_Currdatastatus.ULO_Level1_L = ((int16_t)ResultData & 0x00FF);       
5087 5114
                 printf("ORIGIN ResdBm : %f  %d\r\n",ResdBm,Main_Atten[ALC_Alarm_UL1_Index]);
5088 5115
                 printf("After ResdBm : %f \r\n",ResdBm);
5089 5116
                 Limitdata += (Main_Atten[ALC_Alarm_UL1_Index] / 10);
5117
+                ALC_Alarm_TimerSet(ALC_Alarm_UL1_Index,Limitdata,ResdBm,UL_Atten[ALC_Alarm_UL1_Index]);
5090 5118
                 IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5091 5119
                 //IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);                
5092 5120
                 
@@ -5097,13 +5125,13 @@ void ALC_Function(){ //DL
5097 5125
                         IwillGiveAtten += 10;
5098 5126
                     }
5099 5127
                 }
5100
-
5101
-                if(UL_Atten[ALC_Alarm_UL1_Index] + IwillGiveAtten <= -200){
5102
-
5103
-                    tmpcalc = (-200 + (Main_Atten[ALC_Alarm_UL1_Index] * -1));
5104
-                    IwillGiveAtten =tmpcalc;
5105
-                }
5106
-                    
5128
+//
5129
+//                if(UL_Atten[ALC_Alarm_UL1_Index] + IwillGiveAtten <= -200){
5130
+//
5131
+//                    tmpcalc = (-200 + (Main_Atten[ALC_Alarm_UL1_Index] * -1));
5132
+//                    IwillGiveAtten =tmpcalc;
5133
+//                }
5134
+//                    
5107 5135
                 printf(" UL_Atten[ALC_Alarm_UL1_Index] : %d I WILL GIVE ATTEN  : %d \r\n", UL_Atten[ALC_Alarm_UL1_Index],IwillGiveAtten);  
5108 5136
                 printf("ADC : %f CURR ATT : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
5109 5137
                 printf("==================END================\r\n");                
@@ -5119,19 +5147,11 @@ void ALC_Function(){ //DL
5119 5147
 //                printf("CurrentATTENVALUE %f \r\n",CurrentATTENVALUE);
5120 5148
 /*                if(ALC_Level_Save[ALC_Alarm_UL1_Index] != ResultData
5121 5149
                     || Limitdata != PrevLimitdata[ALC_Alarm_UL1_Index])*/
5122
-                    if(Limitdata != PrevLimitdata[ALC_Alarm_UL1_Index]
5123
-                       ||ResultData!= PrevResultData[ALC_Alarm_UL1_Index]
5124
-                       ||UL_ALC_GainAttenSet[ALC_Alarm_UL1_Index] == true){
5125 5150
                         if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten))){
5126
-                            tempcurratten = CurrentATTENVALUE * 10;
5127
-                            bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = (((uint16_t)((tempcurratten + IwillGiveAtten)) & 0xFF00) >> 8);
5128
-                            bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = ((uint16_t)(tempcurratten + IwillGiveAtten)) & 0x00FF;
5151
+                            bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H = (((uint16_t)((IwillGiveAtten)) & 0xFF00) >> 8);
5152
+                            bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L = ((uint16_t)(IwillGiveAtten)) & 0x00FF;
5129 5153
                             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
5130 5154
                         }
5131
-                        PrevLimitdata[ALC_Alarm_UL1_Index] = Limitdata; 
5132
-                        PrevResultData[ALC_Alarm_UL1_Index] = ResultData;
5133
-                        UL_ALC_GainAttenSet[ALC_Alarm_UL1_Index] = false;
5134
-                }
5135 5155
 //                CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L);             
5136 5156
 
5137 5157
 //                 printf("CurrentATTENVALUE : %f\r\n",CurrentATTENVALUE );  
@@ -5163,7 +5183,8 @@ void ALC_Function(){ //DL
5163 5183
              ResultData = ResdBm;
5164 5184
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L);
5165 5185
             bluecell_Currdatastatus.ULO_Level2_H = ((int16_t)ResultData & 0xFF00) >> 8;
5166
-            bluecell_Currdatastatus.ULO_Level2_L = ((int16_t)ResultData & 0x00FF);       
5186
+            bluecell_Currdatastatus.ULO_Level2_L = ((int16_t)ResultData & 0x00FF); 
5187
+//            CurrentATTENVALUE = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H;
5167 5188
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL2_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5168 5189
 //            printf("CurrentATTENVALUE : %f I WILL GIVE ATTEN  : %d \r\n",CurrentATTENVALUE,IwillGiveAtten);  
5169 5190
 //            printf("ADC : %f Current : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
@@ -5218,7 +5239,7 @@ void ALC_Function(){ //DL
5218 5239
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L);
5219 5240
             bluecell_Currdatastatus.ULO_Level3_H = ((int16_t)ResultData & 0xFF00) >> 8;
5220 5241
             bluecell_Currdatastatus.ULO_Level3_L = ((int16_t)ResultData & 0x00FF);     
5221
-            
5242
+//            CurrentATTENVALUE = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H;
5222 5243
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL3_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5223 5244
 //                printf("ADC : %f Current : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);              
5224 5245
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
@@ -5261,7 +5282,7 @@ void ALC_Function(){ //DL
5261 5282
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L);
5262 5283
              bluecell_Currdatastatus.ULO_Level4_H = ((int16_t)ResultData & 0xFF00) >> 8;
5263 5284
             bluecell_Currdatastatus.ULO_Level4_L = ((int16_t)ResultData & 0x00FF);           
5264
-            
5285
+////            CurrentATTENVALUE = bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H << 8 | bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H;
5265 5286
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL4_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5266 5287
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
5267 5288
                 tempcurratten = CurrentATTENVALUE * 10;