Przeglądaj źródła

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

PYJ 5 lat temu
rodzic
commit
a101982fff
1 zmienionych plików z 45 dodań i 24 usunięć
  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
 void Booting_LED_Check(void);
96
 void Booting_LED_Check(void);
97
 double Bluecell_TestPro(double value );
97
 double Bluecell_TestPro(double value );
98
 double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size,int8_t* RefTable_Data);
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
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_Level;
2672
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_Level;
2672
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_SHTUTDOWN;
2673
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_DLI_SHTUTDOWN;
2673
     data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_ULO_Level;
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
     /*ALARM BIT MASK*/
2677
     /*ALARM BIT MASK*/
2677
     data[MBIC_PAYLOADSTART + i++] = MBIC_AID;
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
 //        printf("2. %f : %f - %d\r\n",ret,CurrDet,threshold);
4957
 //        printf("2. %f : %f - %d\r\n",ret,CurrDet,threshold);
4957
         ret = Bluecell_TestPro(ret +( CurrAtten * -1));
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
     else if(threshold -2 > CurrDet){
4963
     else if(threshold -2 > CurrDet){
4961
         if(CurrAtten < 0){
4964
         if(CurrAtten < 0){
@@ -4968,6 +4971,8 @@ int16_t ALC_Calc(uint8_t num,double CurrAtten ,int8_t threshold,double CurrDet){
4968
 //             ret *= -1;     
4971
 //             ret *= -1;     
4969
              
4972
              
4970
 //            printf("4.ret : %f\r\n",ret);
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
     if(ret < -20){
4982
     if(ret < -20){
4978
 //        printf("5. ret1 : %f \r\n",ret);
4983
 //        printf("5. ret1 : %f \r\n",ret);
4979
         ret = -20;
4984
         ret = -20;
4980
-        ALC_AlarmSet[num] = true;
4985
+        
4981
     }else{
4986
     }else{
4982
         if(ret > 0){
4987
         if(ret > 0){
4983
 //            printf("6. ret1 : %f \r\n",ret);
4988
 //            printf("6. ret1 : %f \r\n",ret);
4984
             ret = 0;
4989
             ret = 0;
4985
         }
4990
         }
4986
-        ALC_AlarmSet[num] = false; 
4991
+       
4987
     }
4992
     }
4988
 //    printf("ret7 : %f \r\n",ret);
4993
 //    printf("ret7 : %f \r\n",ret);
4989
     return ret * 10;
4994
     return ret * 10;
4990
 }
4995
 }
4991
 #define UL_DL_DATASEND_MULTIPLE 10
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
 void ALC_Function(){ //DL 
5017
 void ALC_Function(){ //DL 
4993
     //double Volt_Calc_val = 3.3 / 4095;
5018
     //double Volt_Calc_val = 3.3 / 4095;
4994
     //double tempret = 0;
5019
     //double tempret = 0;
@@ -5081,12 +5106,15 @@ void ALC_Function(){ //DL
5081
     //            Limitdata /= 10;
5106
     //            Limitdata /= 10;
5082
 
5107
 
5083
 //                printf("CurrentATTENVALUE : %f\r\n",CurrentATTENVALUE);  
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
                 bluecell_Currdatastatus.ULO_Level1_H = ((int16_t)ResultData & 0xFF00) >> 8;
5112
                 bluecell_Currdatastatus.ULO_Level1_H = ((int16_t)ResultData & 0xFF00) >> 8;
5086
                 bluecell_Currdatastatus.ULO_Level1_L = ((int16_t)ResultData & 0x00FF);       
5113
                 bluecell_Currdatastatus.ULO_Level1_L = ((int16_t)ResultData & 0x00FF);       
5087
                 printf("ORIGIN ResdBm : %f  %d\r\n",ResdBm,Main_Atten[ALC_Alarm_UL1_Index]);
5114
                 printf("ORIGIN ResdBm : %f  %d\r\n",ResdBm,Main_Atten[ALC_Alarm_UL1_Index]);
5088
                 printf("After ResdBm : %f \r\n",ResdBm);
5115
                 printf("After ResdBm : %f \r\n",ResdBm);
5089
                 Limitdata += (Main_Atten[ALC_Alarm_UL1_Index] / 10);
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
                 IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5118
                 IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5091
                 //IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);                
5119
                 //IwillGiveAtten = ALC_Calc(ALC_Alarm_UL1_Index,CurrentATTENVALUE,Limitdata,ResdBm);                
5092
                 
5120
                 
@@ -5097,13 +5125,13 @@ void ALC_Function(){ //DL
5097
                         IwillGiveAtten += 10;
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
                 printf(" UL_Atten[ALC_Alarm_UL1_Index] : %d I WILL GIVE ATTEN  : %d \r\n", UL_Atten[ALC_Alarm_UL1_Index],IwillGiveAtten);  
5135
                 printf(" UL_Atten[ALC_Alarm_UL1_Index] : %d I WILL GIVE ATTEN  : %d \r\n", UL_Atten[ALC_Alarm_UL1_Index],IwillGiveAtten);  
5108
                 printf("ADC : %f CURR ATT : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
5136
                 printf("ADC : %f CURR ATT : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
5109
                 printf("==================END================\r\n");                
5137
                 printf("==================END================\r\n");                
@@ -5119,19 +5147,11 @@ void ALC_Function(){ //DL
5119
 //                printf("CurrentATTENVALUE %f \r\n",CurrentATTENVALUE);
5147
 //                printf("CurrentATTENVALUE %f \r\n",CurrentATTENVALUE);
5120
 /*                if(ALC_Level_Save[ALC_Alarm_UL1_Index] != ResultData
5148
 /*                if(ALC_Level_Save[ALC_Alarm_UL1_Index] != ResultData
5121
                     || Limitdata != PrevLimitdata[ALC_Alarm_UL1_Index])*/
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
                         if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten))){
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
                             CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
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
 //                CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L);             
5155
 //                CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten1_L);             
5136
 
5156
 
5137
 //                 printf("CurrentATTENVALUE : %f\r\n",CurrentATTENVALUE );  
5157
 //                 printf("CurrentATTENVALUE : %f\r\n",CurrentATTENVALUE );  
@@ -5163,7 +5183,8 @@ void ALC_Function(){ //DL
5163
              ResultData = ResdBm;
5183
              ResultData = ResdBm;
5164
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L);
5184
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten2_L);
5165
             bluecell_Currdatastatus.ULO_Level2_H = ((int16_t)ResultData & 0xFF00) >> 8;
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
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL2_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5188
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL2_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5168
 //            printf("CurrentATTENVALUE : %f I WILL GIVE ATTEN  : %d \r\n",CurrentATTENVALUE,IwillGiveAtten);  
5189
 //            printf("CurrentATTENVALUE : %f I WILL GIVE ATTEN  : %d \r\n",CurrentATTENVALUE,IwillGiveAtten);  
5169
 //            printf("ADC : %f Current : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);  
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
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L);
5239
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten3_L);
5219
             bluecell_Currdatastatus.ULO_Level3_H = ((int16_t)ResultData & 0xFF00) >> 8;
5240
             bluecell_Currdatastatus.ULO_Level3_H = ((int16_t)ResultData & 0xFF00) >> 8;
5220
             bluecell_Currdatastatus.ULO_Level3_L = ((int16_t)ResultData & 0x00FF);     
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
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL3_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5243
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL3_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5223
 //                printf("ADC : %f Current : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);              
5244
 //                printf("ADC : %f Current : %f  Threas : %d : I WILL GIVE ATTEN  : %d \r\n",ret,ResdBm , Limitdata,IwillGiveAtten);              
5224
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
5245
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
@@ -5261,7 +5282,7 @@ void ALC_Function(){ //DL
5261
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L);
5282
             CurrentATTENVALUE = PE43711_Double(bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_H,bluecell_Currdatastatus.MBIC_ULO_ALC_Atten4_L);
5262
              bluecell_Currdatastatus.ULO_Level4_H = ((int16_t)ResultData & 0xFF00) >> 8;
5283
              bluecell_Currdatastatus.ULO_Level4_H = ((int16_t)ResultData & 0xFF00) >> 8;
5263
             bluecell_Currdatastatus.ULO_Level4_L = ((int16_t)ResultData & 0x00FF);           
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
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL4_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5286
             IwillGiveAtten = ALC_Calc(ALC_Alarm_UL4_Index,CurrentATTENVALUE,Limitdata,ResdBm);
5266
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
5287
             if( (IwillGiveAtten > 0) || (CurrentATTENVALUE >= (IwillGiveAtten * -1))){
5267
                 tempcurratten = CurrentATTENVALUE * 10;
5288
                 tempcurratten = CurrentATTENVALUE * 10;