具体操作如下:
1,选择一个卫星,选取其中3个TP进行扫台,假设扫到了CCTV1~10,CCTV F,CCTV news,CCTV R等台;
2,将扫下来的台删掉一部分之后保存频道列表。比如删掉CCTV news;
3,再进入此卫星列表,删除其中一个TP后保存,然后选择剩下的两个TP进行扫台;
4,扫完台之后,会发现多了一些重复的频道,比如CCTV1,2,5等;
具体产生的原因是我们删除TP只是将TP的PCN置为Active没有删除数据库,在重新搜索TP时计算全部TP数的时候遇到Active的PCN就退出了使TP总数计算错误,导致删除的TP后面的TP都是认为是新的TP,就会把这些新的TP搜索的节目保存下来。
修改方法:
1.static MS_U16 GetPhysicalChannelCount(void) //DVBS_STYLE
{
......
for (wPchIndex = 0; wPchIndex < MAX_NUM_OF_PCH; wPchIndex++)
{
if (TRUE == IsPhysicalChannelEntityActive(wPchIndex))
wPhyChCount++;
else
continue;
//break;
}
......
}
2.void MApi_DB_DFT_CheckIfAnySameFreq(MS_U16 *pwPhyChIdx, MS_FE_CARRIER_PARAM *pCarrierParam) //DVBS_STYLE
{
......
MS_U16 u16invalid = 0;
_CHDB_ENTRY()
for (i = 0; i < wPhyChCount + u16invalid; i++)
{
if (IsPhysicalChannelEntityActive(i) == FALSE)
{
u16invalid ++;
}
GetPhysicalChannelTable(i, (MS_U8 *)&u32Freq, pftFREQUENCY);
......
}
|