搜索
 找回密码
 立即注册

简单一步 , 微信登陆

S2预置Service,Sat,TP list 目前实现方法

作者:lailiuming | 时间:2016-7-21 17:56:07 | 阅读:3262| 显示全部楼层
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



回复

使用道具 举报

大神点评4

bean.yang 发表于:2016-7-22 09:06:39
专业
回复

使用道具 举报

halleyhuang 发表于:2016-7-25 18:18:10
赞赞赞赞
该会员没有填写今日想说内容.
回复

使用道具 举报

bean.yang 发表于:2016-7-26 10:31:13
code都直接贴上来了,积极分享。
回复 支持 反对

使用道具 举报

huhaiqiang 发表于:2016-7-29 17:15:05
很好很强大
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版