stb0899_tst_main.c
来自「通过PC并口模拟I2C信号」· C语言 代码 · 共 422 行 · 第 1/2 页
C
422 行
//仼乭Handle乭偑侽丠丠丠
/* Display results */
if(Results.Locked==TRUE)
{
// /* successfull */
// printf("Transponder locked\r\n");
// FE_STB0899_GetSignalInfo(Handle,&pInfo);
// printf("Frequency (KHz) = %d\r\n",pInfo.Frequency);
// printf("Symbol rate (Bds) = %d\r\n",pInfo.SymbolRate);
//
//
// if((Params.Standard==FE_DVBS1_STANDARD)||(Params.Standard==FE_DSS_STANDARD))
// printf("Rate = %s\r\n",FEC_RATES[GetFecRate(pInfo.Rate)]);
// else
// printf("ModCode = %s\r\n",ModCodes[pInfo.ModCode]);
//
// printf("Signal Power = %d dBm\r\n",pInfo.Power);
// printf("C/N = %f dBm\r\n",(double)pInfo.C_N/10.0);
// printf("BER = %f e-7\r\n",(double)pInfo.BER); /*BER for DVBS1, PER for DVBS2*/
//
// if(pInfo.SpectralInv==0)
// printf("Spectrum IQ Not Swapped");
// else
// printf("Spectrum IQ Swapped");
}
else
{
// /* unsuccessfull */
// printf("Transponder not found\r\n");
// printf("Error = %s\r\n",ErrorMessages[Error]);
}
/*****************************************/
/* TERMINATION */
/*****************************************/
// Handle = FE_STB0899_Term(Handle);
//
// getchar();
// return 0;
message("STB0899_tst_main END!!");
}
FE_STB0899_Error_t Cdemod::FE_STB0899_Search(FE_STB0899_Handle_t Handle, FE_STB0899_SearchParams_t *pSearch, FE_STB0899_SearchResult_t *pResult)
{
message("<<FE_STB0899_Search>>");
//MessageBox("<<FE_STB0899_Search>>");
//message_box("<<FE_STB0899_Search>>");
FE_STB0899_Error_t error = FE_NO_ERROR;
FE_STB0899_InternalParams_t *pParams;
char message[100];
//CString t; t.Format("Handle != NULL=%d",Handle != NULL); MessageBox(t);
if(Handle != NULL)
{
pParams = (FE_STB0899_InternalParams_t *) Handle;
// FE_STB0899_SetInternalError(FE_IERR_NO,FE_LOC_NOWHERE,&pParams->Error);
pParams->Standard=pSearch->Standard;
if( (INRANGE(1000000,pSearch->SymbolRate,45000000)) && (INRANGE(1000000,pSearch->SearchRange,50000000)) )
{
//message_box("侾");
FE_STB0899_SetStandard(pParams->hDemod,pSearch->Standard);
//message_box("侾.");
// /*Set tuner Gain */
// if(pSearch->SymbolRate > 15000000)
// TunerSetGain(pParams->hTuner,8); /* 15Msb<symbolrate<45Msb ==> G = 8db*/
// else
// if(pSearch->SymbolRate > 5000000)
// TunerSetGain(pParams->hTuner,12); /* 5Msb<symbolrate<15Msb ==> G = 12db*/
// else
// TunerSetGain(pParams->hTuner,14); /* 1Msb<symbolrate<5Msb ==> G = 14db*/
switch(pSearch->Standard)
{
case FE_DVBS1_STANDARD:
case FE_DSS_STANDARD:
//
// /* Fill pParams structure with search parameters */
// pParams->BaseFreq = pSearch->Frequency;
// pParams->SymbolRate = pSearch->SymbolRate;
// pParams->SearchRange = pSearch->SearchRange;
// pParams->DerotPercent = 10;
// TunerSetBandwidth(pParams->hTuner,CarrierWidth(pParams->SymbolRate,pParams->RollOff) + 10000000);
// pParams->TunerBW = TunerGetBandwidth(pParams->hTuner);
//
// /*Set DVB-S1 AGC*/
// ChipSetOneRegister(pParams->hDemod,RSTB0899_AGCRFCFG,0x11);
//
//
// /* Run the search algorithm */
// if((FE_STB0899_Algo(pParams) == RANGEOK) && (pParams->hDemod->Error == CHIPERR_NO_ERROR))
// {
// pResult->Locked = TRUE;
//
// /* update results */
// pResult->Frequency = pParams->Results.Frequency;
// pResult->SymbolRate = pParams->Results.SymbolRate;
// pResult->Rate = pParams->Results.PunctureRate;
// }
// else
// {
// pResult->Locked = FALSE;
//
// switch(pParams->Error.Type)
// {
// case FE_IERR_I2C: /* I2C error */
// error = FE_I2C_ERROR;
// break;
//
// case FE_IERR_NO:
// default:
// error = FE_SEARCH_FAILED;
// break;
// }
// }
// break;
//
case FE_DVBS2_STANDARD:
////message_box("FE_DVBS2_STANDARD");
//message_box("俀:FE_DVBS2_STANDARD");
/* Fill pParams structure with search parameters */
pParams->Frequency = pSearch->Frequency;
pParams->BaseFreq = pSearch->Frequency;
pParams->DVBS2SymbolRate = pSearch->SymbolRate;
pParams->SpectralInv=pSearch->IQ_Inversion;
pParams->SearchRange = pSearch->SearchRange;
// TunerSetBandwidth(pParams->hTuner,FE_DVBS2_CarrierWidth(pParams->DVBS2SymbolRate,pParams->RrcAlpha) + 10000000);
// pParams->TunerBW = TunerGetBandwidth(pParams->hTuner);
/*Set DVB-S2 AGC*/
ChipSetOneRegister(pParams->hDemod,RSTB0899_AGCRFCFG,0x1c);
//message_box("俁");
/* Run the DVBS2 search algorithm */
if(FE_STB0899_DVBS2Algo(pParams))//僥僗僩
// if((FE_STB0899_DVBS2Algo(pParams) == FE_DVBS2_DATAOK) && (pParams->hDemod->Error == CHIPERR_NO_ERROR))
{
//message_box("係侽");
pResult->Locked = TRUE;
/* update results */
pResult->Frequency = pParams->Results.Frequency;
pResult->SymbolRate = pParams->Results.DVBS2SymbolRate;
pResult->ModCode = pParams->Results.ModCode;
pResult->Pilots = pParams->Results.Pilots;
pResult->FrameLength = pParams->Results.FrameLength;
}
else
{
//message_box("係侾");
pResult->Locked = FALSE;
switch(pParams->Error.Type)
{
case FE_IERR_I2C: /* I2C error */
error = FE_I2C_ERROR;
break;
case FE_IERR_NO:
default:
error = FE_SEARCH_FAILED;
break;
}
}
break;
default:
error = FE_BAD_PARAMETER;
break;
}
}
else
error = FE_BAD_PARAMETER;
}
else
error=FE_INVALID_HANDLE;
return error;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?