Browse Source

MBIC ThresHlod Get Set 추가 / 속도 변경

PYJ 5 years ago
parent
commit
fe820a15cf
3 changed files with 728 additions and 156 deletions
  1. 134 54
      Bluecell_Inc/Bluecell_operate.h
  2. 592 100
      Bluecell_Src/Bluecell_operate.c
  3. 2 2
      Src/main.c

+ 134 - 54
Bluecell_Inc/Bluecell_operate.h

@@ -281,8 +281,31 @@ enum DATATYPE
281 281
     Bluecell_UL2_USER = 0x85,
282 282
     Bluecell_UL3_USER = 0x86,
283 283
     Bluecell_UL4_USER = 0x87,    
284
-    Bluecell_TEMP_USER = 0x88,    
285
-    
284
+    Bluecell_TEMP_USER = 0x88,
285
+    Bluecell_DLI_AGC_ON_OFF,
286
+    Bluecell_ULO_ALC_ON_OFF,
287
+    Bluecell_DLI_AGC_Threshold,
288
+    Bluecell_DLI_AGC_Threshold_Default,
289
+    Bluecell_DLI_Shutdown_ON_OFF,  
290
+    Bluecell_DLI_Shutdown_Threshold,
291
+    Bluecell_DLI_Shutdown_Threshold_Default,
292
+    Bluecell_DLI_Shutdown_Count,
293
+    Bluecell_DLI_Level_High_Threshold                ,
294
+    Bluecell_DLI_Level_Low_Threshold                 ,
295
+    Bluecell_DLI_Level_High_Low_Threshold_default    ,
296
+    Bluecell_LED_TEST  ,
297
+    Bluecell_Temperature_Offset                      ,
298
+    Bluecell_Temp_High_Threshold                     ,
299
+    Bluecell_Temp_High_Threshold_Default             ,     
300
+    Bluecell_ULO_Level_High_Threshold                ,
301
+    Bluecell_ULO_Level_High_Threshold_default        ,    
302
+    Bluecell_ULO_ALC_Threshold                       ,
303
+    Bluecell_ULO_ALC_Threshold_Default               ,
304
+    Bluecell_ULO_Shutdown_ON_OFF                     ,
305
+    Bluecell_ULO_Shutdown_Threshold                  ,
306
+    Bluecell_ULO_Shutdown_Threshold_Default          ,
307
+    Bluecell_ULO_Shutdown_Retry_Count                ,
308
+
286 309
 };
287 310
 
288 311
 /*FLAG BIT START */
@@ -448,7 +471,7 @@ typedef struct{
448 471
     uint8_t DLI_Level_Low_Threshold_H;
449 472
     uint8_t DLI_Level_Low_Threshold_L;
450 473
     uint8_t DLI_Level_High_Low_Threshold_default;
451
-    uint8_t ALARM_TEMP_HIGH;
474
+    uint8_t ALARM_TEMP_HIGH; //bit
452 475
     uint8_t ALARM_DLI_Level;
453 476
     uint8_t ALARM_DLI_AGC_SHTUTDOWN;
454 477
     uint8_t ALARM_ULO_Level;
@@ -551,15 +574,28 @@ typedef struct{
551 574
     uint8_t DLI_Shutdown_Alarm4;
552 575
 
553 576
     
554
-    uint8_t ULO_Level_High_Threshold;
555 577
 
556 578
     
557 579
     uint8_t ULO_Level_High_Threshold_H;
558 580
     uint8_t ULO_Level_High_Threshold_L;
559 581
     
560 582
     uint8_t ULO_Level_High_Threshold_default;
561
-    uint8_t ULO_Level;
562
-    
583
+    uint8_t ULO_Level1_H;
584
+    uint8_t ULO_Level1_L;
585
+    uint8_t ULO_Level2_H;
586
+    uint8_t ULO_Level2_L;
587
+    uint8_t ULO_Level3_H;
588
+    uint8_t ULO_Level3_L;
589
+    uint8_t ULO_Level4_H;
590
+    uint8_t ULO_Level4_L;
591
+    uint8_t DLI_Level1_H;
592
+    uint8_t DLI_Level1_L;
593
+    uint8_t DLI_Level2_H;
594
+    uint8_t DLI_Level2_L;
595
+    uint8_t DLI_Level3_H;
596
+    uint8_t DLI_Level3_L;
597
+    uint8_t DLI_Level4_H;
598
+    uint8_t DLI_Level4_L;
563 599
     uint8_t ULO_Level_High_Alarm1;
564 600
     uint8_t ULO_Level_High_Alarm2;
565 601
     uint8_t ULO_Level_High_Alarm3;
@@ -584,8 +620,6 @@ typedef struct{
584 620
     uint8_t ULO_Shutdown_Alarm2;
585 621
     uint8_t ULO_Shutdown_Alarm3;
586 622
     uint8_t ULO_Shutdown_Alarm4;
587
-
588
-    
589 623
     uint8_t bluecell_crc;
590 624
     uint8_t bluecell_etx;
591 625
 
@@ -786,52 +820,98 @@ typedef struct{
786 820
     uint8_t Table_Det_25_dBm_L	;
787 821
 }DET_TABLEDL_st;
788 822
 typedef struct{
789
-  uint8_t Table_Det_15_dBm_H	;   uint8_t Table_Det_15_dBm_L	;
790
-  uint8_t Table_Det_16_dBm_H	;   uint8_t Table_Det_16_dBm_L	;
791
-  uint8_t Table_Det_17_dBm_H	;   uint8_t Table_Det_17_dBm_L	;
792
-  uint8_t Table_Det_18_dBm_H	;   uint8_t Table_Det_18_dBm_L	;
793
-  uint8_t Table_Det_19_dBm_H	;   uint8_t Table_Det_19_dBm_L	;
794
-  uint8_t Table_Det_20_dBm_H	;   uint8_t Table_Det_20_dBm_L	;
795
-  uint8_t Table_Det_21_dBm_H	;   uint8_t Table_Det_21_dBm_L	;
796
-  uint8_t Table_Det_22_dBm_H	;   uint8_t Table_Det_22_dBm_L	;
797
-  uint8_t Table_Det_23_dBm_H	;   uint8_t Table_Det_23_dBm_L	;
798
-  uint8_t Table_Det_24_dBm_H	;   uint8_t Table_Det_24_dBm_L	;
799
-  uint8_t Table_Det_25_dBm_H	;   uint8_t Table_Det_25_dBm_L	;
800
-  uint8_t Table_Det_26_dBm_H	;   uint8_t Table_Det_26_dBm_L	;
801
-  uint8_t Table_Det_27_dBm_H	;   uint8_t Table_Det_27_dBm_L	;
802
-  uint8_t Table_Det_28_dBm_H	;   uint8_t Table_Det_28_dBm_L	;
803
-  uint8_t Table_Det_29_dBm_H	;   uint8_t Table_Det_29_dBm_L	;
804
-  uint8_t Table_Det_30_dBm_H	;   uint8_t Table_Det_30_dBm_L	;
805
-  uint8_t Table_Det_31_dBm_H	;   uint8_t Table_Det_31_dBm_L	;
806
-  uint8_t Table_Det_32_dBm_H	;   uint8_t Table_Det_32_dBm_L	;
807
-  uint8_t Table_Det_33_dBm_H	;   uint8_t Table_Det_33_dBm_L	;
808
-  uint8_t Table_Det_34_dBm_H	;   uint8_t Table_Det_34_dBm_L	;
809
-  uint8_t Table_Det_35_dBm_H	;   uint8_t Table_Det_35_dBm_L	;
810
-  uint8_t Table_Det_36_dBm_H	;   uint8_t Table_Det_36_dBm_L	;
811
-  uint8_t Table_Det_37_dBm_H	;   uint8_t Table_Det_37_dBm_L	;
812
-  uint8_t Table_Det_38_dBm_H	;   uint8_t Table_Det_38_dBm_L	;
813
-  uint8_t Table_Det_39_dBm_H	;   uint8_t Table_Det_39_dBm_L	;
814
-  uint8_t Table_Det_40_dBm_H	;   uint8_t Table_Det_40_dBm_L	;
815
-  uint8_t Table_Det_41_dBm_H	;   uint8_t Table_Det_41_dBm_L	;
816
-  uint8_t Table_Det_42_dBm_H	;   uint8_t Table_Det_42_dBm_L	;
817
-  uint8_t Table_Det_43_dBm_H	;   uint8_t Table_Det_43_dBm_L	;
818
-  uint8_t Table_Det_44_dBm_H	;   uint8_t Table_Det_44_dBm_L	;
819
-  uint8_t Table_Det_45_dBm_H	;   uint8_t Table_Det_45_dBm_L	;
820
-  uint8_t Table_Det_46_dBm_H	;   uint8_t Table_Det_46_dBm_L	;
821
-  uint8_t Table_Det_47_dBm_H	;   uint8_t Table_Det_47_dBm_L	;
822
-  uint8_t Table_Det_48_dBm_H	;   uint8_t Table_Det_48_dBm_L	;
823
-  uint8_t Table_Det_49_dBm_H	;   uint8_t Table_Det_49_dBm_L	;
824
-  uint8_t Table_Det_50_dBm_H	;   uint8_t Table_Det_50_dBm_L	;
825
-  uint8_t Table_Det_51_dBm_H	;   uint8_t Table_Det_51_dBm_L	;
826
-  uint8_t Table_Det_52_dBm_H	;   uint8_t Table_Det_52_dBm_L	;
827
-  uint8_t Table_Det_53_dBm_H	;   uint8_t Table_Det_53_dBm_L	;
828
-  uint8_t Table_Det_54_dBm_H	;   uint8_t Table_Det_54_dBm_L	;
829
-  uint8_t Table_Det_55_dBm_H	;   uint8_t Table_Det_55_dBm_L	;
830
-  uint8_t Table_Det_56_dBm_H	;   uint8_t Table_Det_56_dBm_L	;
831
-  uint8_t Table_Det_57_dBm_H	;   uint8_t Table_Det_57_dBm_L	;
832
-  uint8_t Table_Det_58_dBm_H	;   uint8_t Table_Det_58_dBm_L	;
833
-  uint8_t Table_Det_59_dBm_H	;   uint8_t Table_Det_59_dBm_L	;
834
-  uint8_t Table_Det_60_dBm_H	;   uint8_t Table_Det_60_dBm_L	;
823
+  uint8_t Table_Det_15_dBm_H	;   
824
+  uint8_t Table_Det_15_dBm_L	;
825
+  uint8_t Table_Det_16_dBm_H	;   
826
+  uint8_t Table_Det_16_dBm_L	;
827
+  uint8_t Table_Det_17_dBm_H	;   
828
+  uint8_t Table_Det_17_dBm_L	;
829
+  uint8_t Table_Det_18_dBm_H	;   
830
+  uint8_t Table_Det_18_dBm_L	;
831
+  uint8_t Table_Det_19_dBm_H	;   
832
+  uint8_t Table_Det_19_dBm_L	;
833
+  uint8_t Table_Det_20_dBm_H	;//1.8
834
+  uint8_t Table_Det_20_dBm_L	;//1.6
835
+  uint8_t Table_Det_21_dBm_H	;//1.4   
836
+  uint8_t Table_Det_21_dBm_L	;
837
+  uint8_t Table_Det_22_dBm_H	;   
838
+  uint8_t Table_Det_22_dBm_L	;
839
+  uint8_t Table_Det_23_dBm_H	;   
840
+  uint8_t Table_Det_23_dBm_L	;
841
+  uint8_t Table_Det_24_dBm_H	;   
842
+  uint8_t Table_Det_24_dBm_L	;
843
+  uint8_t Table_Det_25_dBm_H	;   
844
+  uint8_t Table_Det_25_dBm_L	;
845
+  uint8_t Table_Det_26_dBm_H	;   
846
+  uint8_t Table_Det_26_dBm_L	;
847
+  uint8_t Table_Det_27_dBm_H	;   
848
+  uint8_t Table_Det_27_dBm_L	;
849
+  uint8_t Table_Det_28_dBm_H	;   
850
+  uint8_t Table_Det_28_dBm_L	;
851
+  uint8_t Table_Det_29_dBm_H	;   
852
+  uint8_t Table_Det_29_dBm_L	;
853
+  uint8_t Table_Det_30_dBm_H	;   
854
+  uint8_t Table_Det_30_dBm_L	;
855
+  uint8_t Table_Det_31_dBm_H	;   
856
+  uint8_t Table_Det_31_dBm_L	;
857
+  uint8_t Table_Det_32_dBm_H	;   
858
+  uint8_t Table_Det_32_dBm_L	;
859
+  uint8_t Table_Det_33_dBm_H	;   
860
+  uint8_t Table_Det_33_dBm_L	;
861
+  uint8_t Table_Det_34_dBm_H	;   
862
+  uint8_t Table_Det_34_dBm_L	;
863
+  uint8_t Table_Det_35_dBm_H	;   
864
+  uint8_t Table_Det_35_dBm_L	;
865
+  uint8_t Table_Det_36_dBm_H	;  
866
+  uint8_t Table_Det_36_dBm_L	;
867
+  uint8_t Table_Det_37_dBm_H	;  
868
+  uint8_t Table_Det_37_dBm_L	;
869
+  uint8_t Table_Det_38_dBm_H	;   
870
+  uint8_t Table_Det_38_dBm_L	;
871
+  uint8_t Table_Det_39_dBm_H	;  
872
+  uint8_t Table_Det_39_dBm_L	;
873
+  uint8_t Table_Det_40_dBm_H	;  
874
+  uint8_t Table_Det_40_dBm_L	;
875
+  uint8_t Table_Det_41_dBm_H	;  
876
+  uint8_t Table_Det_41_dBm_L	;
877
+  uint8_t Table_Det_42_dBm_H	; 
878
+  uint8_t Table_Det_42_dBm_L	;
879
+  uint8_t Table_Det_43_dBm_H	;  
880
+  uint8_t Table_Det_43_dBm_L	;
881
+  uint8_t Table_Det_44_dBm_H	;  
882
+  uint8_t Table_Det_44_dBm_L	;
883
+  uint8_t Table_Det_45_dBm_H	;  
884
+  uint8_t Table_Det_45_dBm_L	;
885
+  uint8_t Table_Det_46_dBm_H	;   
886
+  uint8_t Table_Det_46_dBm_L	;
887
+  uint8_t Table_Det_47_dBm_H	; 
888
+  uint8_t Table_Det_47_dBm_L	;
889
+  uint8_t Table_Det_48_dBm_H	;   
890
+  uint8_t Table_Det_48_dBm_L	;
891
+  uint8_t Table_Det_49_dBm_H	; 
892
+  uint8_t Table_Det_49_dBm_L	;
893
+  uint8_t Table_Det_50_dBm_H	;  
894
+  uint8_t Table_Det_50_dBm_L	;
895
+  uint8_t Table_Det_51_dBm_H	;  
896
+  uint8_t Table_Det_51_dBm_L	;
897
+  uint8_t Table_Det_52_dBm_H	;  
898
+  uint8_t Table_Det_52_dBm_L	;
899
+  uint8_t Table_Det_53_dBm_H	;  
900
+  uint8_t Table_Det_53_dBm_L	;
901
+  uint8_t Table_Det_54_dBm_H	;  
902
+  uint8_t Table_Det_54_dBm_L	;
903
+  uint8_t Table_Det_55_dBm_H	;  
904
+  uint8_t Table_Det_55_dBm_L	;
905
+  uint8_t Table_Det_56_dBm_H	;  
906
+  uint8_t Table_Det_56_dBm_L	;
907
+  uint8_t Table_Det_57_dBm_H	;  
908
+  uint8_t Table_Det_57_dBm_L	;
909
+  uint8_t Table_Det_58_dBm_H	;  
910
+  uint8_t Table_Det_58_dBm_L	;
911
+  uint8_t Table_Det_59_dBm_H	;  
912
+  uint8_t Table_Det_59_dBm_L	;
913
+  uint8_t Table_Det_60_dBm_H	;   
914
+  uint8_t Table_Det_60_dBm_L	;
835 915
 }DET_TABLEUL_st;
836 916
 
837 917
 typedef struct{

+ 592 - 100
Bluecell_Src/Bluecell_operate.c

@@ -1,5 +1,7 @@
1 1
 #include <stdio.h>
2 2
 #include <stdlib.h>
3
+#include <math.h>
4
+
3 5
 #include "main.h"
4 6
 #include "Bluecell_operate.h"
5 7
 #include "PE43711.h"
@@ -9,6 +11,8 @@ extern volatile uint32_t LedTimerCnt;
9 11
 extern volatile uint32_t AdcTimerCnt;
10 12
 extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
11 13
 extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
14
+nt8_t AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size);
15
+
12 16
 uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
13 17
 //uint8_t data123[10000];
14 18
 uint8_t ResultData[1024] = {0,};
@@ -249,7 +253,7 @@ double TableAtteGuarantee(uint8_t* Table,double AttenValue);
249 253
 uint8_t PE43711_Calc(uint8_t* Table,uint8_t high_bit,uint8_t low_bit,uint8_t offset_h,uint8_t offset_l);
250 254
 uint8_t PE43711_Calc_NoTable(uint8_t high_bit,uint8_t low_bit);
251 255
 double PE43711_Double(uint8_t high_bit,uint8_t low_bit);
252
-uint8_t AutoControl_Save[sizeof(ALC_dBm_t)];
256
+int8_t AutoControl_Save[sizeof(ALC_dBm_t)];
253 257
 
254 258
 uint8_t MBIC_TxDataArray[256] = {0,};
255 259
 
@@ -1280,15 +1284,15 @@ bool Bluecell_Operate(uint8_t* data){
1280 1284
     case Bluecell_StatusReq:
1281 1285
         DataStatusSet();
1282 1286
         Bluecell_StructCpy(&Txdata[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
1283
-        Txdata[BLUECELL_LENGTH] = sizeof(BLUESTATUS_st) - 3;
1284
-        Txdata[sizeof(BLUESTATUS_st) - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
1287
+        Txdata[BLUECELL_LENGTH] = 94 - 3;//sizeof(BLUESTATUS_st) - 3;
1288
+        Txdata[94 - 2] = STH30_CreateCrc(&Txdata[BLUECELL_TYPE], Txdata[BLUECELL_LENGTH]);
1285 1289
 #if 0 // PYJ.2020.04.22_BEGIN -- 
1286 1290
         for(int i = 0 ; i < sizeof(BLUESTATUS_st); i++ ){
1287 1291
             printf("%x ",Txdata[i]);
1288 1292
         }
1289 1293
         printf("\r\n");
1290 1294
 #endif // PYJ.2020.04.22_END --    
1291
-        Uart1_Data_Send(&Txdata[0], sizeof(BLUESTATUS_st));
1295
+        Uart1_Data_Send(&Txdata[0], 94);
1292 1296
         break;
1293 1297
     case Bluecell_StatusSave:
1294 1298
 //        printf("Copy Complete");
@@ -1346,6 +1350,113 @@ bool Bluecell_Operate(uint8_t* data){
1346 1350
         bluecell_Currdatastatus.bluecell_User_UL4_L = data[BLUECELL_DATA + i++];
1347 1351
         CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
1348 1352
         break;
1353
+
1354
+        /*******/
1355
+#if 0 // PYJ.2020.05.13_BEGIN -- 
1356
+    수정 및 추가 
1357
+#endif // PYJ.2020.05.13_END -- 
1358
+        /*******/
1359
+    case Bluecell_TEMP_USER                               :
1360
+        bluecell_Currdatastatus.bluecell_User_TEMP_OFFSET_H = data[BLUECELL_DATA + i++];
1361
+        bluecell_Currdatastatus.bluecell_User_TEMP_OFFSET_L = data[BLUECELL_DATA + i++];
1362
+
1363
+        break;
1364
+    case Bluecell_DLI_AGC_ON_OFF:                             
1365
+        bluecell_Currdatastatus.ATT_AGC1_ONOFF = data[BLUECELL_DATA + i];
1366
+        bluecell_Currdatastatus.ATT_AGC2_ONOFF = data[BLUECELL_DATA + i];
1367
+        bluecell_Currdatastatus.ATT_AGC3_ONOFF = data[BLUECELL_DATA + i];
1368
+        bluecell_Currdatastatus.ATT_AGC4_ONOFF = data[BLUECELL_DATA + i];
1369
+
1370
+        break;
1371
+    case Bluecell_ULO_ALC_ON_OFF:                             
1372
+        bluecell_Currdatastatus.ATT_ALC1_ONOFF = data[BLUECELL_DATA + i];
1373
+        bluecell_Currdatastatus.ATT_ALC2_ONOFF = data[BLUECELL_DATA + i];
1374
+        bluecell_Currdatastatus.ATT_ALC3_ONOFF = data[BLUECELL_DATA + i];
1375
+        bluecell_Currdatastatus.ATT_ALC4_ONOFF = data[BLUECELL_DATA + i];
1376
+        break;
1377
+    case Bluecell_DLI_AGC_Threshold:                          
1378
+        bluecell_Currdatastatus.DLI_AGC_Threshold_H = data[BLUECELL_DATA + i++];
1379
+        bluecell_Currdatastatus.DLI_AGC_Threshold_L = data[BLUECELL_DATA + i++];
1380
+
1381
+        break;
1382
+    case Bluecell_DLI_AGC_Threshold_Default:                  
1383
+        bluecell_Currdatastatus.DLI_AGC_Threshold_default = data[BLUECELL_DATA + i++];
1384
+
1385
+        break;
1386
+    case Bluecell_DLI_Shutdown_ON_OFF:                        
1387
+        bluecell_Currdatastatus.DLI_Shutdown_ON_OFF = data[BLUECELL_DATA + i++];
1388
+        
1389
+        break;
1390
+    case Bluecell_DLI_Shutdown_Threshold:                     
1391
+        bluecell_Currdatastatus.DLI_Shutdown_Threshold_H = data[BLUECELL_DATA + i++];
1392
+        bluecell_Currdatastatus.DLI_Shutdown_Threshold_L = data[BLUECELL_DATA + i++];
1393
+
1394
+        break;
1395
+    case Bluecell_DLI_Shutdown_Threshold_Default:             
1396
+        bluecell_Currdatastatus.DLI_Shutdown_Threshold_Default = data[BLUECELL_DATA + i++];
1397
+        break;
1398
+    case Bluecell_DLI_Shutdown_Count:                         
1399
+        /*NOP*/
1400
+        break;
1401
+    case Bluecell_DLI_Level_High_Threshold                :   
1402
+        bluecell_Currdatastatus.DLI_Level_High_Threshold_H = data[BLUECELL_DATA + i++];
1403
+        bluecell_Currdatastatus.DLI_Level_High_Threshold_L = data[BLUECELL_DATA + i++];
1404
+
1405
+        break;
1406
+    case Bluecell_DLI_Level_Low_Threshold                 :   
1407
+        bluecell_Currdatastatus.DLI_Level_Low_Threshold_H = data[BLUECELL_DATA + i++];
1408
+        bluecell_Currdatastatus.DLI_Level_Low_Threshold_L = data[BLUECELL_DATA + i++];
1409
+
1410
+        break;
1411
+    case Bluecell_DLI_Level_High_Low_Threshold_default    :   
1412
+        bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default = data[BLUECELL_DATA + i++];
1413
+        break;
1414
+    case Bluecell_LED_TEST  :                                 
1415
+        bluecell_Currdatastatus.LED_TEST = data[BLUECELL_DATA + i++];
1416
+        break;
1417
+    case Bluecell_Temperature_Offset                      :   
1418
+        bluecell_Currdatastatus.bluecell_User_TEMP_OFFSET_H = data[BLUECELL_DATA + i++];
1419
+        bluecell_Currdatastatus.bluecell_User_TEMP_OFFSET_L = data[BLUECELL_DATA + i++];
1420
+
1421
+        break;
1422
+    case Bluecell_Temp_High_Threshold                     :   
1423
+        bluecell_Currdatastatus.Temp_High_Threshold = data[BLUECELL_DATA + i++];
1424
+        break;
1425
+    case Bluecell_Temp_High_Threshold_Default             :   
1426
+        bluecell_Currdatastatus.Temp_High_Threshold_Default = data[BLUECELL_DATA + i++];
1427
+        break;
1428
+    case Bluecell_ULO_Level_High_Threshold                :   
1429
+        bluecell_Currdatastatus.ULO_Level_High_Threshold_H = data[BLUECELL_DATA + i++];
1430
+        bluecell_Currdatastatus.ULO_Level_High_Threshold_L = data[BLUECELL_DATA + i++];
1431
+
1432
+        break;
1433
+    case Bluecell_ULO_Level_High_Threshold_default        :   
1434
+        bluecell_Currdatastatus.ULO_Level_High_Threshold_default = data[BLUECELL_DATA + i++];
1435
+        break;
1436
+    case Bluecell_ULO_ALC_Threshold                       :   
1437
+        bluecell_Currdatastatus.ULO_ALC_Threshold_H = data[BLUECELL_DATA + i++];
1438
+        bluecell_Currdatastatus.ULO_ALC_Threshold_L = data[BLUECELL_DATA + i++];
1439
+
1440
+        break;
1441
+    case Bluecell_ULO_ALC_Threshold_Default               :   
1442
+        bluecell_Currdatastatus.ULO_ALC_Threshold_Default = data[BLUECELL_DATA + i++];
1443
+
1444
+        break;
1445
+    case Bluecell_ULO_Shutdown_ON_OFF                     :   
1446
+        bluecell_Currdatastatus.ULO_Shutdown_ON_OFF = data[BLUECELL_DATA + i++];
1447
+
1448
+        break;
1449
+    case Bluecell_ULO_Shutdown_Threshold                  :   
1450
+        bluecell_Currdatastatus.ULO_Shutdown_Threshold_H = data[BLUECELL_DATA + i++];
1451
+        bluecell_Currdatastatus.ULO_Shutdown_Threshold_L = data[BLUECELL_DATA + i++];
1452
+
1453
+        break;
1454
+    case Bluecell_ULO_Shutdown_Threshold_Default          :   
1455
+        bluecell_Currdatastatus.ULO_Shutdown_Threshold_Default = data[BLUECELL_DATA + i++];
1456
+
1457
+        break;
1458
+    case Bluecell_ULO_Shutdown_Retry_Count                :   
1459
+        break;
1349 1460
   }
1350 1461
   if(datatype != Bluecell_StatusReq){
1351 1462
       Bluecell_StructCpy(&DataWrite[0],&bluecell_Currdatastatus.bluecell_header,sizeof(BLUESTATUS_st));
@@ -1485,6 +1596,8 @@ bool MBIC_Operate(uint8_t* data){
1485 1596
     uint8_t SubData[256] = {0,};
1486 1597
     uint16_t Temp_ADC = 0;
1487 1598
     uint16_t i = 0;
1599
+    double temp = 0;
1600
+    int16_t Level = 0;
1488 1601
     /*AID*/
1489 1602
     for(int i = 0; i < Length; i++){
1490 1603
         SubData[i] = (data[MBIC_PROT_SUB_DATA_INDEX + 3 + i]);
@@ -1573,7 +1686,7 @@ bool MBIC_Operate(uint8_t* data){
1573 1686
 
1574 1687
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Temp_High_Threshold;
1575 1688
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Temp_High_Threshold_Default;
1576
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ALARM_TEMP_HIGH;
1689
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.Temp_High_Alarm;
1577 1690
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.LED_TEST;
1578 1691
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.NODE;
1579 1692
 
@@ -1653,14 +1766,43 @@ bool MBIC_Operate(uint8_t* data){
1653 1766
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1654 1767
 
1655 1768
         /*DLI LEVEL QUESTION START ???? */
1656
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1657
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1658
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1659
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1660
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1661
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1662
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1663
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1769
+
1770
+        temp  = (bluecell_Currdatastatus.DET_DL1_IN_H << 8 
1771
+              | bluecell_Currdatastatus.DET_DL1_IN_L) * 3.3/4095; 
1772
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1773
+        Level *= 10;
1774
+        bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
1775
+        bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
1776
+        temp  = (bluecell_Currdatastatus.DET_DL2_IN_H << 8 
1777
+              | bluecell_Currdatastatus.DET_DL2_IN_L) * 3.3/4095; 
1778
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1779
+        Level *= 10;
1780
+        bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
1781
+        bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
1782
+        
1783
+        temp  = (bluecell_Currdatastatus.DET_DL3_IN_H << 8 
1784
+              | bluecell_Currdatastatus.DET_DL3_IN_L) * 3.3/4095; 
1785
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1786
+        Level *= 10;
1787
+        bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
1788
+        bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
1789
+        
1790
+        temp  = (bluecell_Currdatastatus.DET_DL4_IN_H << 8 
1791
+              | bluecell_Currdatastatus.DET_DL4_IN_L) * 3.3/4095; 
1792
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1793
+        Level *= 10;
1794
+        bluecell_Currdatastatus.DLI_Level1_H = ((Level & 0xFF00) >> 8);
1795
+        bluecell_Currdatastatus.DLI_Level1_L = ((Level & 0xFF00) >> 8);
1796
+
1797
+        
1798
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level1_H;
1799
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level1_L;
1800
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level2_H;
1801
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level2_L;
1802
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level3_H;
1803
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level3_L;
1804
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level4_H;
1805
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level4_L;
1664 1806
         /*DLI LEVEL QUESTION END ???? */
1665 1807
 
1666 1808
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Alarm1;
@@ -1737,14 +1879,44 @@ bool MBIC_Operate(uint8_t* data){
1737 1879
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level_High_Threshold_L;
1738 1880
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level_High_Threshold_default;
1739 1881
         /*ULO LEVEL QUESTION START ???? */
1740
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1741
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1742
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1743
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1744
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1745
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1746
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1747
-        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default;
1882
+
1883
+
1884
+        temp  = (bluecell_Currdatastatus.DET_UL1_IN_H << 8 
1885
+              | bluecell_Currdatastatus.DET_UL1_IN_L) * 3.3/4095; 
1886
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1887
+        Level *= 10;
1888
+        bluecell_Currdatastatus.ULO_Level1_H = ((Level & 0xFF00) >> 8);
1889
+        bluecell_Currdatastatus.ULO_Level1_L = ((Level & 0xFF00) >> 8);
1890
+        temp  = (bluecell_Currdatastatus.DET_UL2_IN_H << 8 
1891
+              | bluecell_Currdatastatus.DET_UL2_IN_L) * 3.3/4095; 
1892
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1893
+        Level *= 10;
1894
+        bluecell_Currdatastatus.ULO_Level2_H = ((Level & 0xFF00) >> 8);
1895
+        bluecell_Currdatastatus.ULO_Level2_L = ((Level & 0xFF00) >> 8);
1896
+        
1897
+        temp  = (bluecell_Currdatastatus.DET_UL3_IN_H << 8 
1898
+              | bluecell_Currdatastatus.DET_UL3_IN_L) * 3.3/4095; 
1899
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1900
+        Level *= 10;
1901
+        bluecell_Currdatastatus.ULO_Level3_H = ((Level & 0xFF00) >> 8);
1902
+        bluecell_Currdatastatus.ULO_Level3_L = ((Level & 0xFF00) >> 8);
1903
+        
1904
+        temp  = (bluecell_Currdatastatus.DET_UL4_IN_H << 8 
1905
+              | bluecell_Currdatastatus.DET_UL4_IN_L) * 3.3/4095; 
1906
+        Level = AutoControl_ADC_Compare(temp,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
1907
+        Level *= 10;
1908
+        bluecell_Currdatastatus.ULO_Level4_H = ((Level & 0xFF00) >> 8);
1909
+        bluecell_Currdatastatus.ULO_Level4_L = ((Level & 0xFF00) >> 8);
1910
+
1911
+        
1912
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level1_H;
1913
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level1_L;        
1914
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level2_H;
1915
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level2_L;
1916
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level3_H;
1917
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level3_L;
1918
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level4_H;
1919
+        data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level4_L;
1748 1920
         /*ULO LEVEL QUESTION END ???? */
1749 1921
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level_High_Alarm1;
1750 1922
         data[MBIC_PAYLOADSTART + i++] = bluecell_Currdatastatus.ULO_Level_High_Alarm2;
@@ -1856,6 +2028,7 @@ bool MBIC_Operate(uint8_t* data){
1856 2028
                 bluecell_Currdatastatus.Factory_Set_Initialization = data[MBIC_PAYLOADSTART + 0]; 
1857 2029
                 break;
1858 2030
             case  Temperature                     :
2031
+                /*I WILL MODIFY*/
1859 2032
                 bluecell_Currdatastatus.DET_TEMP_H = data[MBIC_PAYLOADSTART + 0]; 
1860 2033
                 break;
1861 2034
             case  Temperature_Offset                      :
@@ -1870,17 +2043,20 @@ bool MBIC_Operate(uint8_t* data){
1870 2043
 
1871 2044
                 break;
1872 2045
             case  Temp_High_Alarm                         :
1873
-                bluecell_Currdatastatus.ALARM_TEMP_HIGH = data[MBIC_PAYLOADSTART + 0]; 
2046
+                bluecell_Currdatastatus.Temp_High_Alarm = data[MBIC_PAYLOADSTART + 0]; 
1874 2047
 
1875 2048
                 break;
1876 2049
             case  LED_TEST                                :
1877
-                bluecell_Currdatastatus.ALARM_TEMP_HIGH = data[MBIC_PAYLOADSTART + 0]; 
2050
+                bluecell_Currdatastatus.LED_TEST = data[MBIC_PAYLOADSTART + 0]; 
1878 2051
 
1879 2052
                 break;
2053
+#if 0
1880 2054
             case  Node                                    :
2055
+//                bluecell_Currdatastatus.LED_TEST = data[MBIC_PAYLOADSTART + 0]; 
1881 2056
 
1882 2057
                 break;
1883 2058
             case  Type                                    :
2059
+//                bluecell_Currdatastatus.LED_TEST = data[MBIC_PAYLOADSTART + 0]; 
1884 2060
 
1885 2061
                 break;
1886 2062
             case  PCB_Version                             :
@@ -1923,81 +2099,304 @@ bool MBIC_Operate(uint8_t* data){
1923 2099
             case  ULO_P2_Level                            :break;
1924 2100
             case  ULO_P3_Level                            :break;
1925 2101
             case  ULO_P4_Level                            :break;
1926
-            case  DLI_RF_Path1_ON_OFF             :break;
1927
-            case  DLI_RF_Path2_ON_OFF                     :break;
1928
-            case  DLI_RF_Path3_ON_OFF                     :break;
1929
-            case  DLI_RF_Path4_ON_OFF                     :break;
1930
-            case  DLI_Gain_Atten1                         :break;
1931
-            case  DLI_Gain_Atten2                         :break;
1932
-            case  DLI_Gain_Atten3                         :break;
1933
-            case  DLI_Gain_Atten4                         :break;
1934
-            case  DLI_Gain_Atten_Offset1                  :break;
1935
-            case  DLI_Gain_Atten_Offset2                  :break;
1936
-            case  DLI_Gain_Atten_Offset3                  :break;
1937
-            case  DLI_Gain_Atten_Offset4                  :break;
1938
-            case  DLI_Level_High_Threshold                :break;
1939
-            case  DLI_Level_Low_Threshold                 :break;
1940
-            case  DLI_Level_High_Low_Threshold_default    :break;
1941
-            case  DLI_Level                               :break;
1942
-            case  DLI_Level_High_Alarm1            :break;
1943
-            case  DLI_Level_High_Alarm2                   :break;
1944
-            case  DLI_Level_High_Alarm3                   :break;
1945
-            case  DLI_Level_High_Alarm4                   :break;
1946
-            case  DLI_Level_Low_Alarm1                    :break;
1947
-            case  DLI_Level_Low_Alarm2                    :break;
2102
+#endif
2103
+            case  DLI_RF_Path1_ON_OFF             :
2104
+                bluecell_Currdatastatus.ATT_DL1_PATH = data[MBIC_PAYLOADSTART + 0]; 
2105
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2106
+                break;
2107
+            case  DLI_RF_Path2_ON_OFF                     :
2108
+                bluecell_Currdatastatus.ATT_DL2_PATH = data[MBIC_PAYLOADSTART + 0]; 
2109
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2110
+                break;
2111
+            case  DLI_RF_Path3_ON_OFF                     :
2112
+                bluecell_Currdatastatus.ATT_DL3_PATH = data[MBIC_PAYLOADSTART + 0]; 
2113
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2114
+                break;
2115
+            case  DLI_RF_Path4_ON_OFF                     :
2116
+                bluecell_Currdatastatus.ATT_DL4_PATH = data[MBIC_PAYLOADSTART + 0]; 
2117
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2118
+                break;
2119
+            case  DLI_Gain_Atten1                         :
2120
+                bluecell_Currdatastatus.ATT_DL1_H = data[MBIC_PAYLOADSTART + 0]; 
2121
+                bluecell_Currdatastatus.ATT_DL1_L = data[MBIC_PAYLOADSTART + 1]; 
2122
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2123
+                break;
2124
+            case  DLI_Gain_Atten2                         :
2125
+                bluecell_Currdatastatus.ATT_DL2_H = data[MBIC_PAYLOADSTART + 0]; 
2126
+                bluecell_Currdatastatus.ATT_DL2_L = data[MBIC_PAYLOADSTART + 1]; 
2127
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2128
+
2129
+                break;
2130
+            case  DLI_Gain_Atten3                         :
2131
+                bluecell_Currdatastatus.ATT_DL3_H = data[MBIC_PAYLOADSTART + 0]; 
2132
+                bluecell_Currdatastatus.ATT_DL3_L = data[MBIC_PAYLOADSTART + 1]; 
2133
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2134
+
2135
+                break;
2136
+            case  DLI_Gain_Atten4                         :
2137
+                bluecell_Currdatastatus.ATT_DL4_H = data[MBIC_PAYLOADSTART + 0]; 
2138
+                bluecell_Currdatastatus.ATT_DL4_L = data[MBIC_PAYLOADSTART + 1]; 
2139
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2140
+
2141
+                break;
2142
+            case  DLI_Gain_Atten_Offset1                  :
2143
+                bluecell_Currdatastatus.bluecell_User_DL1_H = data[MBIC_PAYLOADSTART + 0]; 
2144
+                bluecell_Currdatastatus.bluecell_User_DL1_L = data[MBIC_PAYLOADSTART + 1]; 
2145
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2146
+
2147
+                break;
2148
+            case  DLI_Gain_Atten_Offset2                  :
2149
+                bluecell_Currdatastatus.bluecell_User_DL2_H = data[MBIC_PAYLOADSTART + 0]; 
2150
+                bluecell_Currdatastatus.bluecell_User_DL2_L = data[MBIC_PAYLOADSTART + 1];
2151
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2152
+
2153
+                break;
2154
+            case  DLI_Gain_Atten_Offset3                  :
2155
+                bluecell_Currdatastatus.bluecell_User_DL3_H = data[MBIC_PAYLOADSTART + 0]; 
2156
+                bluecell_Currdatastatus.bluecell_User_DL3_L = data[MBIC_PAYLOADSTART + 1]; 
2157
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2158
+
2159
+                break;
2160
+            case  DLI_Gain_Atten_Offset4                  :
2161
+                bluecell_Currdatastatus.bluecell_User_DL4_H = data[MBIC_PAYLOADSTART + 0]; 
2162
+                bluecell_Currdatastatus.bluecell_User_DL4_L = data[MBIC_PAYLOADSTART + 1]; 
2163
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2164
+
2165
+                break;
2166
+            case  DLI_Level_High_Threshold                :
2167
+                bluecell_Currdatastatus.DLI_Level_High_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2168
+                bluecell_Currdatastatus.DLI_Level_High_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2169
+
2170
+                break;
2171
+            case  DLI_Level_Low_Threshold                 :
2172
+                bluecell_Currdatastatus.DLI_Level_Low_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2173
+                bluecell_Currdatastatus.DLI_Level_Low_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2174
+
2175
+                break;
2176
+            case  DLI_Level_High_Low_Threshold_default    :
2177
+                bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default = data[MBIC_PAYLOADSTART + 0]; 
2178
+
2179
+                break;
2180
+#if 0 // PYJ.2020.05.12_BEGIN -- 
2181
+            case  DLI_Level                               :
2182
+                bluecell_Currdatastatus.DLI_Level_High_Low_Threshold_default = data[MBIC_PAYLOADSTART + 0]; 
2183
+                break;
2184
+            case  DLI_Level_High_Alarm1            :
2185
+
2186
+                break;
2187
+            case  DLI_Level_High_Alarm2                   :
2188
+
2189
+                break;
2190
+            case  DLI_Level_High_Alarm3                   :
2191
+
2192
+                break;
2193
+            case  DLI_Level_High_Alarm4                   :
2194
+
2195
+                break;
2196
+            case  DLI_Level_Low_Alarm1                    :
2197
+
2198
+                break;
2199
+            case  DLI_Level_Low_Alarm2                    :
2200
+
2201
+                break;
1948 2202
             case  DLI_Level_Low_Alarm3                    :break;
1949 2203
             case  DLI_Level_Low_Alarm4                    :break;
1950
-            case  DLI_AGC_ON_OFF                   :break;
1951
-            case  DLI_AGC_Threshold                       :break;
1952
-            case  DLI_AGC_Threshold_Default               :break;
1953
-            case  DLI_Shutdown_ON_OFF                     :break;
1954
-            case  DLI_Shutdown_Threshold                  :break;
1955
-            case  DLI_Shutdown_Threshold_Default          :break;
1956
-            case  DLI_Shutdown_Count                      :break;
1957
-            case  DLI_AGC_Alarm1                          :break;
1958
-            case  DLI_AGC_Alarm2                          :break;
1959
-            case  DLI_AGC_Alarm3                          :break;
1960
-            case  DLI_AGC_Alarm4                          :break;
2204
+#endif // PYJ.2020.05.12_END -- 
2205
+            case  DLI_AGC_ON_OFF                   :
2206
+                /*AGC multi apply*/
2207
+                bluecell_Currdatastatus.ATT_AGC1_ONOFF = data[MBIC_PAYLOADSTART + 0]; 
2208
+                bluecell_Currdatastatus.ATT_AGC2_ONOFF = data[MBIC_PAYLOADSTART + 0]; 
2209
+                bluecell_Currdatastatus.ATT_AGC3_ONOFF = data[MBIC_PAYLOADSTART + 0]; 
2210
+                bluecell_Currdatastatus.ATT_AGC4_ONOFF = data[MBIC_PAYLOADSTART + 0]; 
2211
+                break;
2212
+            case  DLI_AGC_Threshold                       :
2213
+                bluecell_Currdatastatus.DLI_AGC_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2214
+                bluecell_Currdatastatus.DLI_AGC_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2215
+
2216
+                break;
2217
+            case  DLI_AGC_Threshold_Default               :
2218
+                bluecell_Currdatastatus.DLI_AGC_Threshold_default = data[MBIC_PAYLOADSTART + 0]; 
2219
+                break;
2220
+            case  DLI_Shutdown_ON_OFF                     :
2221
+                bluecell_Currdatastatus.DLI_Shutdown_ON_OFF = data[MBIC_PAYLOADSTART + 0]; 
2222
+
2223
+                break;
2224
+            case  DLI_Shutdown_Threshold                  :
2225
+                bluecell_Currdatastatus.DLI_Shutdown_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2226
+                bluecell_Currdatastatus.DLI_Shutdown_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2227
+
2228
+                break;
2229
+            case  DLI_Shutdown_Threshold_Default          :
2230
+                bluecell_Currdatastatus.DLI_Shutdown_Threshold_Default = data[MBIC_PAYLOADSTART + 0]; 
2231
+
2232
+                break;
2233
+            case  DLI_Shutdown_Count                      :
2234
+                bluecell_Currdatastatus.DLI_Shutdown_Retry_Count1 = data[MBIC_PAYLOADSTART + 0]; 
2235
+                bluecell_Currdatastatus.DLI_Shutdown_Retry_Count2 = data[MBIC_PAYLOADSTART + 1]; 
2236
+                bluecell_Currdatastatus.DLI_Shutdown_Retry_Count3 = data[MBIC_PAYLOADSTART + 2]; 
2237
+                bluecell_Currdatastatus.DLI_Shutdown_Retry_Count4 = data[MBIC_PAYLOADSTART + 3]; 
2238
+
2239
+                break;
2240
+#if 0 // PYJ.2020.05.12_BEGIN -- 
2241
+            case  DLI_AGC_Alarm1                          :
2242
+
2243
+                break;
2244
+            case  DLI_AGC_Alarm2                          :
2245
+
2246
+                break;
2247
+            case  DLI_AGC_Alarm3                          :
2248
+
2249
+                break;
2250
+            case  DLI_AGC_Alarm4                          :
2251
+
2252
+                break;
1961 2253
             case  DLI_Shutdown_Alarm1                     :break;
1962 2254
             case  DLI_Shutdown_Alarm2                     :break;
1963 2255
             case  DLI_Shutdown_Alarm3                     :break;
1964 2256
             case  DLI_Shutdown_Alarm4                     :break;
1965
-            case  ULO_RF_Path1_ON_OFF1            :break;
1966
-            case  ULO_RF_Path2_ON_OFF2                    :break;
1967
-            case  ULO_RF_Path3_ON_OFF3                    :break;
1968
-            case  ULO_RF_Path4_ON_OFF4                    :break;
1969
-            case  ULO_Gain_Atten1                         :break;
1970
-            case  ULO_Gain_Atten2                         :break;
1971
-            case  ULO_Gain_Atten3                         :break;
1972
-            case  ULO_Gain_Atten4                         :break;
1973
-            case  ULO_Gain_Atten_Offset1                  :break;
1974
-            case  ULO_Gain_Atten_Offset2                  :break;
1975
-            case  ULO_Gain_Atten_Offset3                  :break;
1976
-            case  ULO_Gain_Atten_Offset4                  :break;
1977
-            case  ULO_Level_High_Threshold                :break;
1978
-            case  SERIAL_UL_NULL0                         :break;
1979
-            case  ULO_Level_High_Threshold_default        :break;
1980
-            case  ULO_Level                               :break;
1981
-            case  ULO_Level_High_Alarm1             :break;
1982
-            case  ULO_Level_High_Alarm2                   :break;
2257
+#endif // PYJ.2020.05.12_END -- 
2258
+            case  ULO_RF_Path1_ON_OFF1            :
2259
+                bluecell_Currdatastatus.ATT_UL1_PATH = data[MBIC_PAYLOADSTART + 0]; 
2260
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2261
+                break;
2262
+            case  ULO_RF_Path2_ON_OFF2                    :
2263
+                bluecell_Currdatastatus.ATT_UL2_PATH = data[MBIC_PAYLOADSTART + 0]; 
2264
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2265
+
2266
+                break;
2267
+            case  ULO_RF_Path3_ON_OFF3                    :
2268
+                bluecell_Currdatastatus.ATT_UL3_PATH = data[MBIC_PAYLOADSTART + 0]; 
2269
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2270
+
2271
+                break;
2272
+            case  ULO_RF_Path4_ON_OFF4                    :
2273
+                bluecell_Currdatastatus.ATT_UL4_PATH = data[MBIC_PAYLOADSTART + 0]; 
2274
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2275
+
2276
+                break;
2277
+            case  ULO_Gain_Atten1                         :
2278
+                bluecell_Currdatastatus.ATT_UL1_H = data[MBIC_PAYLOADSTART + 0]; 
2279
+                bluecell_Currdatastatus.ATT_UL1_L = data[MBIC_PAYLOADSTART + 1]; 
2280
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2281
+
2282
+                break;
2283
+            case  ULO_Gain_Atten2                         :
2284
+                bluecell_Currdatastatus.ATT_UL2_H = data[MBIC_PAYLOADSTART + 0]; 
2285
+                bluecell_Currdatastatus.ATT_UL2_L = data[MBIC_PAYLOADSTART + 1]; 
2286
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2287
+
2288
+                break;
2289
+            case  ULO_Gain_Atten3                         :
2290
+                bluecell_Currdatastatus.ATT_UL3_H = data[MBIC_PAYLOADSTART + 0]; 
2291
+                bluecell_Currdatastatus.ATT_UL3_L = data[MBIC_PAYLOADSTART + 1]; 
2292
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2293
+
2294
+                break;
2295
+            case  ULO_Gain_Atten4                         :
2296
+                bluecell_Currdatastatus.ATT_UL4_H = data[MBIC_PAYLOADSTART + 0]; 
2297
+                bluecell_Currdatastatus.ATT_UL4_L = data[MBIC_PAYLOADSTART + 1]; 
2298
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2299
+
2300
+                break;
2301
+            case  ULO_Gain_Atten_Offset1                  :
2302
+                bluecell_Currdatastatus.bluecell_User_UL1_H = data[MBIC_PAYLOADSTART + 0]; 
2303
+                bluecell_Currdatastatus.bluecell_User_UL1_L = data[MBIC_PAYLOADSTART + 1]; 
2304
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2305
+
2306
+                break;
2307
+            case  ULO_Gain_Atten_Offset2                  :
2308
+                bluecell_Currdatastatus.bluecell_User_UL2_H = data[MBIC_PAYLOADSTART + 0]; 
2309
+                bluecell_Currdatastatus.bluecell_User_UL2_L = data[MBIC_PAYLOADSTART + 1]; 
2310
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2311
+
2312
+                break;
2313
+            case  ULO_Gain_Atten_Offset3                  :
2314
+                bluecell_Currdatastatus.bluecell_User_UL3_H = data[MBIC_PAYLOADSTART + 0]; 
2315
+                bluecell_Currdatastatus.bluecell_User_UL3_L = data[MBIC_PAYLOADSTART + 1]; 
2316
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2317
+
2318
+                break;
2319
+            case  ULO_Gain_Atten_Offset4                  :
2320
+                bluecell_Currdatastatus.bluecell_User_UL4_H = data[MBIC_PAYLOADSTART + 0]; 
2321
+                bluecell_Currdatastatus.bluecell_User_UL4_L = data[MBIC_PAYLOADSTART + 1]; 
2322
+                CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
2323
+
2324
+                break;
2325
+            case  ULO_Level_High_Threshold                :
2326
+                bluecell_Currdatastatus.ULO_Level_High_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2327
+                bluecell_Currdatastatus.ULO_Level_High_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2328
+                break;
2329
+            case  ULO_Level_High_Threshold_default        :
2330
+                bluecell_Currdatastatus.ULO_Level_High_Threshold_default = data[MBIC_PAYLOADSTART + 0]; 
2331
+                break;
2332
+#if 0 // PYJ.2020.05.12_BEGIN -- 
2333
+            case  ULO_Level                               :
2334
+                break;
2335
+            case  ULO_Level_High_Alarm1                  :break;
2336
+            case  ULO_Level_High_Alarm2                  :break;
1983 2337
             case  ULO_Level_High_Alarm3                  :break;
1984 2338
             case  ULO_Level_High_Alarm4                  :break;
1985
-            case  SERIAL_UL_NULL1                         :break;
1986
-            case  ULO_ALC_ON_OFF                   :break;
1987
-            case  ULO_ALC_Threshold                       :break;
1988
-            case  ULO_ALC_Threshold_Default               :break;
1989
-            case  ULO_Shutdown_ON_OFF                     :break;
1990
-            case  ULO_Shutdown_Threshold                  :break;
1991
-            case  ULO_Shutdown_Threshold_Default          :break;
1992
-            case  ULO_Shutdown_Retry_Count                :break;
1993
-            case  ULO_ALC_Alarm1                          :break;
1994
-            case  ULO_ALC_Alarm2                          :break;
1995
-            case  ULO_ALC_Alarm3                          :break;
1996
-            case  ULO_ALC_Alarm4                          :break;
1997
-            case  ULO_Shutdown_Alarm1                     :break;
1998
-            case  ULO_Shutdown_Alarm2                     :break;
1999
-            case  ULO_Shutdown_Alarm3                     :break;
2000
-            case  ULO_Shutdown_Alarm4                     :break;
2339
+            case  SERIAL_UL_NULL1                        :break;
2340
+#endif // PYJ.2020.05.12_END -- 
2341
+            case  ULO_ALC_ON_OFF                   :
2342
+                bluecell_Currdatastatus.ULO_ALC_ON_OFF = data[MBIC_PAYLOADSTART + 0]; 
2343
+
2344
+                break;
2345
+            case  ULO_ALC_Threshold                       :
2346
+                bluecell_Currdatastatus.ULO_ALC_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2347
+                bluecell_Currdatastatus.ULO_ALC_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2348
+
2349
+                break;
2350
+            case  ULO_ALC_Threshold_Default               :
2351
+                bluecell_Currdatastatus.ULO_ALC_Threshold_Default = data[MBIC_PAYLOADSTART + 0]; 
2352
+
2353
+                break;
2354
+            case  ULO_Shutdown_ON_OFF                     :
2355
+                bluecell_Currdatastatus.ULO_Shutdown_ON_OFF = data[MBIC_PAYLOADSTART + 0]; 
2356
+
2357
+                break;
2358
+            case  ULO_Shutdown_Threshold                  :
2359
+                bluecell_Currdatastatus.ULO_Shutdown_Threshold_H = data[MBIC_PAYLOADSTART + 0]; 
2360
+                bluecell_Currdatastatus.ULO_Shutdown_Threshold_L = data[MBIC_PAYLOADSTART + 1]; 
2361
+
2362
+                break;
2363
+            case  ULO_Shutdown_Threshold_Default          :
2364
+                bluecell_Currdatastatus.ULO_Shutdown_Threshold_Default = data[MBIC_PAYLOADSTART + 0]; 
2365
+
2366
+
2367
+                break;
2368
+            case  ULO_Shutdown_Retry_Count                :
2369
+                bluecell_Currdatastatus.ULO_Shutdown_Retry_Count1 = data[MBIC_PAYLOADSTART + 0]; 
2370
+                bluecell_Currdatastatus.ULO_Shutdown_Retry_Count2 = data[MBIC_PAYLOADSTART + 0]; 
2371
+                bluecell_Currdatastatus.ULO_Shutdown_Retry_Count3 = data[MBIC_PAYLOADSTART + 0]; 
2372
+                bluecell_Currdatastatus.ULO_Shutdown_Retry_Count4 = data[MBIC_PAYLOADSTART + 0]; 
2373
+                break;
2374
+#if 0 // PYJ.2020.05.13_BEGIN -- 
2375
+            case  ULO_ALC_Alarm1                          :
2376
+
2377
+                break;
2378
+            case  ULO_ALC_Alarm2                          :
2379
+
2380
+                break;
2381
+            case  ULO_ALC_Alarm3                          :
2382
+
2383
+                break;
2384
+            case  ULO_ALC_Alarm4                          :
2385
+
2386
+                break;
2387
+            case  ULO_Shutdown_Alarm1                     :
2388
+
2389
+                break;
2390
+            case  ULO_Shutdown_Alarm2                     :
2391
+
2392
+                break;
2393
+            case  ULO_Shutdown_Alarm3                     :
2394
+
2395
+                break;
2396
+            case  ULO_Shutdown_Alarm4                     :
2397
+#endif // PYJ.2020.05.13_END -- 
2398
+
2399
+                break;
2001 2400
         }
2002 2401
     }
2003 2402
         else{
@@ -2204,6 +2603,98 @@ void ADC_Check(void){
2204 2603
 
2205 2604
 
2206 2605
 
2606
+#if 1 // PYJ.2020.05.12_BEGIN -- 
2607
+
2608
+/*One Point  round*/
2609
+double Bluecell_round( double value )
2610
+{
2611
+    unsigned short data = value * 1000;
2612
+    unsigned short temp = 0;
2613
+    double ret = 0;
2614
+//    printf("1: %d\r\n",data);
2615
+    temp = data % 10;
2616
+    if(temp >= 5){
2617
+        data = data - temp + 10;
2618
+    }else{
2619
+        data = data - temp;
2620
+    }
2621
+//    printf("2: %d\r\n",data);
2622
+    temp = (data % 100) / 10;
2623
+//    printf("3: %d\r\n",temp);
2624
+    if(temp >= 5){
2625
+        data = data - (temp * 10)+ 100;
2626
+    }else{
2627
+        data = data - (temp * 10);
2628
+    }
2629
+//     printf("4: %d\r\n",data);
2630
+     ret = data;
2631
+//        printf("ret : %f\r\n",ret / 1000);
2632
+
2633
+     return ret / 1000;
2634
+}
2635
+
2636
+
2637
+#endif // PYJ.2020.05.12_END -- 
2638
+
2639
+#if 0 // PYJ.2020.05.12_BEGIN -- 
2640
+double AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size){
2641
+    double ret = 0xFF,CurrRet = 0,TableAdc,TableAdcret; 
2642
+    uint8_t LastIndex = 0;
2643
+    double Max_ADC = 0,Min_ADC = 0;
2644
+    double step = 0;
2645
+    double dot = 0,tempret = 0xFF;
2646
+    for(int i =0; i < size / 2; i++){
2647
+        TableAdc = CompareAdc[i * 2] << 8;
2648
+        TableAdc += CompareAdc[i * 2 + 1];
2649
+        TableAdc /= 1000;
2650
+//        printf("TableAdc[%d] : %f \r\n",i,TableAdc);
2651
+        CurrRet = TableAdc - CurrentAdc;
2652
+        
2653
+        if(CurrRet < 0){ // plus 공식 
2654
+            CurrRet = (CurrRet * -2) + CurrRet;
2655
+        }
2656
+        if(ret > CurrRet){
2657
+            ret = CurrRet;
2658
+            TableAdcret = TableAdc;
2659
+            LastIndex = i;
2660
+        }
2661
+    }
2662
+    
2663
+    /*MIN*/
2664
+    TableAdc = CompareAdc[LastIndex * 2] << 8;
2665
+    TableAdc += CompareAdc[LastIndex * 2 + 1];
2666
+    TableAdc /= 1000;
2667
+    Min_ADC = TableAdc;
2668
+    /*MAX*/
2669
+    TableAdc = CompareAdc[LastIndex * 2 - 2 ] << 8;
2670
+    TableAdc += CompareAdc[LastIndex * 2 - 1];
2671
+    TableAdc /= 1000;
2672
+    Max_ADC = TableAdc;
2673
+
2674
+    
2675
+    step = ((Max_ADC - Min_ADC) / 10);
2676
+    
2677
+//    Min_ADC = Bluecell_round(Min_ADC);
2678
+//    CurrentAdc = Bluecell_round(CurrentAdc);
2679
+//    printf("1:STEP : %f , %f  > %f > %f \r\n",step,Max_ADC,CurrentAdc,Min_ADC);
2680
+    for(double d = 0; d < 1; d += 0.1){
2681
+        CurrRet = CurrentAdc - Min_ADC;
2682
+        if(tempret >= CurrRet & CurrRet > 0){
2683
+//            printf("(%f >= %f)\r\n",tempret,CurrRet);
2684
+            tempret = CurrRet;
2685
+//            printf("2:STEP : %f , %f  > %f > %f \r\n",step,Max_ADC,CurrentAdc,Min_ADC);
2686
+            Min_ADC += step;
2687
+            dot = d;
2688
+        }
2689
+   }    
2690
+//    printf("dot : %f \r\n",dot);
2691
+    dot = AutoControl_Save[LastIndex] - dot;
2692
+    
2693
+//    printf("AutoControl_Save[LastIndex]:%d + dot:%f : %f \r\n",AutoControl_Save[LastIndex] + dot);
2694
+//    printf(" %f  > %f > %f \r\n",Max_ADC,CurrentAdc,Min_ADC);
2695
+    return dot;
2696
+}
2697
+#else
2207 2698
 int8_t AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t size){
2208 2699
     double ret = 0xFF,CurrRet = 0,TableAdc; 
2209 2700
     uint8_t LastIndex = 0;
@@ -2226,6 +2717,8 @@ int8_t AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t siz
2226 2717
     }
2227 2718
     return AutoControl_Save[LastIndex];
2228 2719
 }
2720
+
2721
+#endif // PYJ.2020.05.12_END -- 
2229 2722
 int32_t MinusConvert(uint8_t Temp_h, int32_t Value){
2230 2723
     int32_t ret;
2231 2724
     if((((bluecell_Currdatastatus.ATT_ALC1_MAX_H << 8) & 0xFF00) & 0xF000) == 0xF000){
@@ -2248,9 +2741,10 @@ void ALC_Function(){ //DL
2248 2741
     int32_t CurrnALC_MAX_SettingValue = 0;    
2249 2742
     int32_t CurrnALC_MIN_SettingValue = 0;        
2250 2743
     int32_t ALC_Result = 0;
2251
-    int8_t ResdBm = 0;
2252
-
2744
+    double ResdBm = 0;
2745
+    uint8_t tempadc[100];
2253 2746
     Bluecell_StructCpy(&AutoControl_Save[0],&ALC_Table_ref.DET_UL_0,sizeof(ALC_dBm_t));
2747
+    Bluecell_StructCpy(&tempadc[0],&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2254 2748
     if(ALCTimerCnt > 100){
2255 2749
         if(bluecell_Currdatastatus.ATT_ALC1_ONOFF == true){
2256 2750
 #if 1 // PYJ.2020.04.29_BEGIN -- 
@@ -2262,10 +2756,8 @@ void ALC_Function(){ //DL
2262 2756
             ResdBm = AutoControl_ADC_Compare(ret,&Det_UL1.Table_Det_15_dBm_H,sizeof(DET_TABLEUL_st));
2263 2757
 //            printf("==================================\r\n");
2264 2758
 //            printf("Current UL ADC VALUE : %f \r\n",ret);
2265
-//            printf("ResdBm : UL1 : %d \r\n",ResdBm);
2266
-            
2267
-            
2268
-            
2759
+//            printf("ResdBm : UL1 : %f \r\n",ResdBm);
2760
+//            HAL_Delay(1000);
2269 2761
             
2270 2762
             CurrnALC_MAX_SettingValue = bluecell_Currdatastatus.ATT_ALC1_MAX_H << 8;
2271 2763
             CurrnALC_MAX_SettingValue += bluecell_Currdatastatus.ATT_ALC1_MAX_L;
@@ -2279,7 +2771,7 @@ void ALC_Function(){ //DL
2279 2771
 //            printf("I WILL GIVE YOU ATTEN MAX : %d \r\n",ResdBm - CurrnALC_MAX_SettingValue);
2280 2772
 //            printf("I WILL GIVE YOU ATTEN MIN : %d \r\n",ResdBm - CurrnALC_MIN_SettingValue);
2281 2773
 //            printf("==================================\r\n");            
2282
-            ALC_Result  += ResdBm - CurrnALC_MAX_SettingValue;
2774
+            ALC_Result  = ResdBm - CurrnALC_MAX_SettingValue;
2283 2775
             if(ALC_Result > 0){
2284 2776
                 ALC_Result *= 100;
2285 2777
                 ALC_Result +=  bluecell_Currdatastatus.ATT_UL1_H << 8 | bluecell_Currdatastatus.ATT_UL1_L;
@@ -2320,7 +2812,7 @@ void ALC_Function(){ //DL
2320 2812
             
2321 2813
             CurrnALC_MIN_SettingValue = bluecell_Currdatastatus.ATT_ALC2_MIN_H << 8;
2322 2814
             CurrnALC_MIN_SettingValue += bluecell_Currdatastatus.ATT_ALC2_MIN_L;
2323
-            ALC_Result  += ResdBm - CurrnALC_MAX_SettingValue;
2815
+            ALC_Result  = ResdBm - CurrnALC_MAX_SettingValue;
2324 2816
             if(ALC_Result > 0){
2325 2817
                 ALC_Result *= 100;
2326 2818
                 ALC_Result +=  bluecell_Currdatastatus.ATT_UL2_H << 8 | bluecell_Currdatastatus.ATT_UL2_L;
@@ -2356,7 +2848,7 @@ void ALC_Function(){ //DL
2356 2848
              
2357 2849
              CurrnALC_MIN_SettingValue = bluecell_Currdatastatus.ATT_ALC3_MIN_H << 8;
2358 2850
              CurrnALC_MIN_SettingValue += bluecell_Currdatastatus.ATT_ALC3_MIN_L;
2359
-             ALC_Result  += ResdBm - CurrnALC_MAX_SettingValue;
2851
+             ALC_Result  = ResdBm - CurrnALC_MAX_SettingValue;
2360 2852
              if(ALC_Result > 0){
2361 2853
                  ALC_Result *= 100;
2362 2854
                  ALC_Result +=  bluecell_Currdatastatus.ATT_UL3_H << 8 | bluecell_Currdatastatus.ATT_UL3_L;
@@ -2393,7 +2885,7 @@ void ALC_Function(){ //DL
2393 2885
              
2394 2886
              CurrnALC_MIN_SettingValue = bluecell_Currdatastatus.ATT_ALC4_MIN_H << 8;
2395 2887
              CurrnALC_MIN_SettingValue += bluecell_Currdatastatus.ATT_ALC4_MIN_L;
2396
-             ALC_Result  += ResdBm - CurrnALC_MAX_SettingValue;
2888
+             ALC_Result  = ResdBm - CurrnALC_MAX_SettingValue;
2397 2889
              if(ALC_Result > 0){
2398 2890
                  ALC_Result *= 100;
2399 2891
                  ALC_Result +=  bluecell_Currdatastatus.ATT_UL4_H << 8 | bluecell_Currdatastatus.ATT_UL4_L;

+ 2 - 2
Src/main.c

@@ -118,7 +118,7 @@ uint16_t adc3cnt = 0 ;
118 118
 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
119 119
 {
120 120
 //?��?��?�� 코드 ?��?��
121
-//諤嵸烄 ?嚙踝蕭?嚙踝蕭 adc?嚙踝蕭嚙???????? 嚙?????????嚙踝蕭?嚙踝蕭 ?嚙踝蕭 ?嚙踝蕭?嚙踝蕭嚙???????? ?嚙踝蕭?嚙踝蕭嚙???????? ?嚙踝蕭?嚙踝蕭?? 穈軤𦚯 魽國探嚙???????? ?嚙踝蕭?嚙踝蕭
121
+//만약 ?��?�� adc?���???????? �?????????��?�� ?�� ?��?���???????? ?��?���???????? ?��?��?? 같이 조건�???????? ?��?��
122 122
 
123 123
     if(hadc->Instance == hadc1.Instance)
124 124
     {
@@ -681,7 +681,7 @@ static void MX_USART1_UART_Init(void)
681 681
 
682 682
   /* USER CODE END USART1_Init 1 */
683 683
   huart1.Instance = USART1;
684
-  huart1.Init.BaudRate = 115200;
684
+  huart1.Init.BaudRate = 921600;
685 685
   huart1.Init.WordLength = UART_WORDLENGTH_8B;
686 686
   huart1.Init.StopBits = UART_STOPBITS_1;
687 687
   huart1.Init.Parity = UART_PARITY_NONE;