|
@@ -425,18 +425,19 @@ ATT_TABLE_st Atten_Table_ref[Table_ATT_Ref_Index_MAX] = {
|
425
|
425
|
}
|
426
|
426
|
#endif // PYJ.2020.06.29_END --
|
427
|
427
|
|
428
|
|
-#define TableDataSetting_ATT_DL_STEP 0.5 * 10
|
429
|
|
-#define TableDataSetting_ATT_UL_STEP 0.5 * 10
|
430
|
|
-#define TableDataSetting_ATT_DL_LEVEL_STEP 1 * 10
|
431
|
|
-#define TableDataSetting_ATT_UL_LEVEL_STEP 1 * 10
|
432
|
|
-#define TableDataSetting_ATT_DL_TEMP_STEP 5 * 10
|
433
|
|
-#define TableDataSetting_ATT_UL_TEMP_STEP 5 * 10
|
|
428
|
+#define TableDataSetting_ATT_DL_STEP 0.5
|
|
429
|
+#define TableDataSetting_ATT_UL_STEP 0.5
|
|
430
|
+#define TableDataSetting_ATT_DL_LEVEL_STEP -1
|
|
431
|
+#define TableDataSetting_ATT_UL_LEVEL_STEP -1
|
|
432
|
+#define TableDataSetting_ATT_DL_TEMP_STEP -5
|
|
433
|
+#define TableDataSetting_ATT_UL_TEMP_STEP -5
|
434
|
434
|
|
435
|
435
|
void Table_DataSetting(int8_t* pdata,int8_t RefData,double step,uint8_t size){
|
436
|
|
- step /= 10;
|
|
436
|
+// step /= 10;
|
437
|
437
|
for(int i =0; i < size; i++){
|
438
|
438
|
pdata[i] = RefData;
|
439
|
|
- RefData -= step;
|
|
439
|
+ printf("pdata[%d] %d \r\n",i,pdata[i]);
|
|
440
|
+ RefData += step;
|
440
|
441
|
}
|
441
|
442
|
}
|
442
|
443
|
void Table_Init(){
|
|
@@ -5554,17 +5555,16 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
|
5554
|
5555
|
uint8_t dot = 0;
|
5555
|
5556
|
double Lastdata = 0;
|
5556
|
5557
|
double Compare_Data = 0;
|
5557
|
|
- double first_data = CompareAdc[0] << 8 | CompareAdc[1];
|
5558
|
|
- for(int i =0; i < size / 2; i++){
|
5559
|
|
- TableAdc = CompareAdc[i * 2] << 8;
|
5560
|
|
- TableAdc += CompareAdc[i * 2 + 1];
|
5561
|
|
- TableAdc /= 1000;
|
|
5558
|
+ double first_data = (((CompareAdc[0] << 8) | CompareAdc[1]) * 0.001);
|
|
5559
|
+ for(int i =0; i < size; i++){
|
|
5560
|
+ TableAdc = (((CompareAdc[i * 2] << 8) | CompareAdc[i * 2 + 1]) * 0.001);
|
5562
|
5561
|
Lastdata = TableAdc;
|
5563
|
5562
|
|
5564
|
5563
|
NextTableAdc = CompareAdc[i * 2 + 2] << 8;
|
5565
|
5564
|
NextTableAdc += CompareAdc[i * 2 + 3];
|
5566
|
5565
|
NextTableAdc /= 1000;
|
5567
|
5566
|
// printf("TableAdc[%d] : %f \r\n",i,TableAdc);
|
|
5567
|
+ Vitual_array[0] = TableAdc;
|
5568
|
5568
|
// CurrRet = TableAdc - CurrentAdc;
|
5569
|
5569
|
if(TableAdc >= NextTableAdc){
|
5570
|
5570
|
step = (TableAdc - NextTableAdc)* 0.1;
|
|
@@ -5572,14 +5572,16 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
|
5572
|
5572
|
step = (NextTableAdc - TableAdc) * 0.1;
|
5573
|
5573
|
}
|
5574
|
5574
|
for(int a = 0; a < 10; a++){
|
5575
|
|
- Vitual_array[a] = TableAdc - (step * a);
|
5576
|
|
- if(Vitual_array[a] >= CurrentAdc){
|
5577
|
|
- CurrRet = Vitual_array[a] - CurrentAdc;
|
5578
|
|
- }else{
|
5579
|
|
- CurrRet = CurrentAdc - Vitual_array[a];
|
5580
|
|
- }
|
|
5575
|
+ if(size - 1 != i){
|
|
5576
|
+ Vitual_array[a] = TableAdc - (step * a);
|
|
5577
|
+ }
|
|
5578
|
+ if(Vitual_array[a] >= CurrentAdc){
|
|
5579
|
+ CurrRet = Vitual_array[a] - CurrentAdc;
|
|
5580
|
+ }else{
|
|
5581
|
+ CurrRet = CurrentAdc - Vitual_array[a];
|
|
5582
|
+ }
|
5581
|
5583
|
// CurrRet = (Vitual_array[a]) - (CurrentAdc);
|
5582
|
|
-// printf("Vitual_array[%d] : %f \r\n",a,Vitual_array[a]);
|
|
5584
|
+// printf("Vitual_array[%d] : %f ERROR RATE : %f \r\n",a,Vitual_array[a],CurrRet);
|
5583
|
5585
|
// Compare_Data *= 1000;
|
5584
|
5586
|
|
5585
|
5587
|
// if(CurrRet < 0){
|
|
@@ -5597,17 +5599,24 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
|
5597
|
5599
|
// printf("ret : %f CurrRet : %f CurrentAdc : %f %d.Vitual_array[a] : %f dot : %d\r\n",ret,CurrRet,CurrentAdc,i,Vitual_array[a],dot);
|
5598
|
5600
|
dot = a;
|
5599
|
5601
|
}
|
|
5602
|
+ if(size - 1 == i){
|
|
5603
|
+// printf("size - 1 : %d i : %d \r\n",size -1 , i);
|
|
5604
|
+ break;
|
|
5605
|
+ }
|
5600
|
5606
|
}
|
5601
|
5607
|
|
5602
|
5608
|
}
|
5603
|
|
- if(Lastdata > CurrentAdc){
|
5604
|
|
-// printf("RefTable_Data[(size / 2) - 1] : %d \r\n",RefTable_Data[(size / 2) - 1]);
|
5605
|
|
- return RefTable_Data[(size / 2) - 1];
|
|
5609
|
+ if(Lastdata >= CurrentAdc){
|
|
5610
|
+// for(int i = 0; i < size; i++){
|
|
5611
|
+// printf("RefTable_Data[%d] : %d \r\n",i,RefTable_Data[i]);
|
|
5612
|
+// }
|
|
5613
|
+// printf("RefTable_Data[%d] : %d \r\n",size,RefTable_Data[(LastIndex )]);
|
|
5614
|
+ return RefTable_Data[LastIndex ];
|
5606
|
5615
|
}
|
5607
|
5616
|
// printf("CurrentAdc : %f TableAdc : %f \r\n",CurrentAdc,TableAdc);
|
5608
|
5617
|
// for(int a = 0; a < sizeof(AGC_dBm_t); a++)
|
5609
|
5618
|
// printf("AutoControl_Save[%d] : %d \r\n",a,AutoControl_Save[a]);
|
5610
|
|
- if(first_data < CurrentAdc){
|
|
5619
|
+ if(first_data <= CurrentAdc){
|
5611
|
5620
|
// printf("(RefTable_Data[0]) : %d \r\n",(RefTable_Data[0]));
|
5612
|
5621
|
return (RefTable_Data[0]);
|
5613
|
5622
|
}else{
|
|
@@ -6591,14 +6600,14 @@ typedef enum{
|
6591
|
6600
|
DL_Level_H,
|
6592
|
6601
|
DL_Level_L,
|
6593
|
6602
|
};
|
6594
|
|
-void DL_Det_Function(uint8_t Table_Num,uint8_t* CurrADC_Level,uint8_t* Det_Val,uint8_t* Level){
|
|
6603
|
+void DL_Det_Function(uint8_t Table_Num,uint8_t* CurrADC_Level,DET_TABLEDL_st* DL_Table,uint8_t* Level){
|
6595
|
6604
|
double ret = 0;//
|
6596
|
6605
|
uint8_t* AGC_Table;
|
6597
|
6606
|
int16_t Levelret = 0;
|
6598
|
6607
|
AGC_Table = &DL_DET_Table_ref[Table_Num][TABLE_MAX_VALUE];
|
6599
|
6608
|
ret = (((CurrADC_Level[DL_Level_H] << 8) | CurrADC_Level[DL_Level_L]) * 0.001);
|
6600
|
6609
|
|
6601
|
|
- Levelret = (int16_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_Val,33,AGC_Table));
|
|
6610
|
+ Levelret = (int16_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&DL_Table->Table_Det5_dBm_H,DL_Table->Table_Length,AGC_Table));
|
6602
|
6611
|
Level[DL_Level_H] = (Levelret & 0xFF00) >> 8;
|
6603
|
6612
|
Level[DL_Level_L] = (Levelret & 0x00FF);
|
6604
|
6613
|
}
|
|
@@ -6900,6 +6909,10 @@ void AGC_Function(){//DL
|
6900
|
6909
|
bluecell_Currdatastatus.DLI_Level1_L = (Levelret & 0x00FF);
|
6901
|
6910
|
#else
|
6902
|
6911
|
DL_Det_Function(MBIC_Table_DL1_INDEX,&bluecell_Currdatastatus.DLI_P1_Level1_H,&Det_DL1.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level1_H);
|
|
6912
|
+ DL_Det_Function(MBIC_Table_DL2_INDEX,&bluecell_Currdatastatus.DLI_P2_Level2_H,&Det_DL2.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level2_H);
|
|
6913
|
+ DL_Det_Function(MBIC_Table_DL3_INDEX,&bluecell_Currdatastatus.DLI_P3_Level3_H,&Det_DL3.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level3_H);
|
|
6914
|
+ DL_Det_Function(MBIC_Table_DL4_INDEX,&bluecell_Currdatastatus.DLI_P4_Level4_H,&Det_DL4.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level4_H);
|
|
6915
|
+
|
6903
|
6916
|
|
6904
|
6917
|
#endif // PYJ.2020.07.01_END --
|
6905
|
6918
|
#if 0 // PYJ.2020.06.20_BEGIN --
|
|
@@ -6917,7 +6930,7 @@ void AGC_Function(){//DL
|
6917
|
6930
|
// printf("ResdBm : DL1 : %d \r\n",ResdBm);
|
6918
|
6931
|
// HAL_Delay(1000);
|
6919
|
6932
|
|
6920
|
|
-#if 1 // PYJ.2020.06.23_BEGIN --
|
|
6933
|
+#if 0 // PYJ.2020.06.23_BEGIN --
|
6921
|
6934
|
AGC_Table = &DL_DET_Table_ref[MBIC_Table_DL2_INDEX][TABLE_MAX_VALUE];
|
6922
|
6935
|
ret = bluecell_Currdatastatus.DLI_P2_Level2_H << 8;
|
6923
|
6936
|
ret += bluecell_Currdatastatus.DLI_P2_Level2_L;
|