S2预置Service,Sat,TP list 目前实现方法 
 
1,可以提供MsDBTool.exe工具和DB(*.DBM)文件给客户,请客户编辑好需要预置的节目,卫星,tp,然后保存DBM,并发回给我们。 
2,预置节目: 使用MsDBTool.exe 打开 客户提供的DB文件,可以直接导出apiDTVDefaultServiceTable.h,该文件内容是需要预置的节目的表,  导出的文件只需对比最新代码下相应文件,修改下结构体名称即可。 
3,预置Sat list和TP list:  不能直接从工具里面导出相关数据;但是我们可以使用如下方法添加: 
    a,首先我们可以确认代码上sat list 和tp list对应的分别是AntennaSatList_BuiltIn,AntennaTpList_BuiltIn两个表,另外卫星名称定义在TYPE_SATELLITE这个枚举里面;我们只需要将我们需要预置的信息按以上3个表的格式打印出来即可。 
    b,例如目前 SMC 7S01代码上,在satellite list 界面,在MApp_ZUI_ACT_HandleSatelliteListMenuKey    function里添加如下内容,然后升级到机顶盒上. 
    c, 机顶盒导入客户提供的DB文件,进入satellite list 界面,分别按下遥控器2,3,4键,打印出3个表的信息,直接复制替换原来的表里面的内容即可。 
 
#if 0  //add for add default SAT and TP 
 case VK_NUMERIC_2: 
  { 
   MS_U8 u8SatId = 0; 
   printf("\nu8SATNum=%d,\n\n\n\n",u8SLSATNum); 
   for(u8SatId=0;u8SatId<u8SLSATNum;u8SatId++) 
   { 
    MS_SAT_PARAM SatInfor1; 
    _SLGetSatInforByID(u8SatId,&SatInfor1);//sat lm 
    if(SatInfor1.eLNBType == EN_LNBTYPE_C) 
    { 
     printf("{C_%d_%d,    BAND_C,    %d,    (MS_U8*)\"%s\"},\n",SatInfor1.u16Angle,u8SatId,SatInfor1.u16Angle,SatInfor1.aSatName); 
    } 
    else 
    { 
     printf("{KU_%d_%d,    BAND_KU,    %d,    (MS_U8*)\"%s\"},\n",SatInfor1.u16Angle,u8SatId,SatInfor1.u16Angle,SatInfor1.aSatName); 
    }  
   } 
   break; 
  } 
  case VK_NUMERIC_3: 
  { 
   MS_U8 u8SatId = 0; 
   printf("\nu8SLSATNum=%d,\n\n\n\n",u8SLSATNum); 
   MApi_DB_DFT_PhysicalChannelBySatID(u8SLCurrentEditSATId); 
   for(u8SatId=0;u8SatId<u8SLSATNum;u8SatId++) 
   { 
    MS_SAT_PARAM SatInfor1; 
    MS_FE_CARRIER_PARAM tmpCarrierParam; 
    _SLGetSatInforByID(u8SatId,&SatInfor1);//sat lm 
    MS_U16 u16TPNum =MApi_DB_DFT_PhysicalChannelBySatID(u8SatId); 
    MS_U16 u16SatTPId = 0; 
    for(u16SatTPId=0;u16SatTPId<u16TPNum;u16SatTPId++) 
    { 
     MS_U16 u16TPIdx = MApi_DB_DFT_PositionBySatID2PCHIndex(u8SatId,u16SatTPId); 
     if(oprSUCCESS==MApi_DB_DFT_GetCarrierParam(u16TPIdx,&tmpCarrierParam)) 
     { 
          if(SatInfor1.eLNBType == EN_LNBTYPE_C) 
          { 
           printf("{C_%d_%d,    %ld,  %ld,    %d},\n",SatInfor1.u16Angle, u8SatId,tmpCarrierParam.u32Frequency, tmpCarrierParam.SatParam.u16SymbolRate,tmpCarrierParam.SatParam.u8Polarity); 
          } 
          else 
          { 
           printf("{KU_%d_%d,    %ld,  %ld,    %d},\n",SatInfor1.u16Angle, u8SatId,tmpCarrierParam.u32Frequency, tmpCarrierParam.SatParam.u16SymbolRate,tmpCarrierParam.SatParam.u8Polarity); 
          }  
     } 
    } 
     
   } 
   break; 
  } 
  case VK_NUMERIC_4: 
  { 
   MS_U8 u8SatId = 0; 
   printf("\nu8SLSATNum=%d,\n\n\n\n",u8SLSATNum); 
   for(u8SatId=0;u8SatId<u8SLSATNum;u8SatId++) 
   { 
    MS_SAT_PARAM SatInfor1; 
    _SLGetSatInforByID(u8SatId,&SatInfor1);//sat lm 
    if(SatInfor1.eLNBType == EN_LNBTYPE_C) 
    { 
     printf("    C_%d_%d,\n",SatInfor1.u16Angle,u8SatId); 
    } 
    else 
    { 
     printf("    KU_%d_%d,\n",SatInfor1.u16Angle,u8SatId); 
    }  
   } 
   break;// 
  } 
#endif 
 
 
 
 |