搜索
 找回密码
 立即注册

简单一步 , 微信登陆

DVB-S2 MOTOR相关问题总结

作者:lailiuming | 时间:2016-7-21 17:54:03 | 阅读:5970| 显示全部楼层
假设所有卫星都有设置保存自己的位置:
1,在卫星列表,TP列表,Dish Setting切换到不同卫星时,马达不会自动转动到当前卫星对应的位置上。
2,切换到不同卫星的节目马达不会自动转动到当前卫星的位置。
3,接DiSEqc 设备后,切换不同卫星节目motor不转动。  
4,切换不同卫星之间的节目,如果节目的Frequency 刚好相同,motor不转动。

         实际环境中,如果motor没有正确转动,是不能接收到相对应的信号的。


解决方法:
1,2,在卫星列表,TP列表,切换不同卫星节目,重新锁定频点时,MApi_DigiTuner_Tune2RfCh,需要重新设定卫星相关参数_DigiTuner_SwitchSatellite,并判断是否有设置DiSEqC1.2/DiSEqC1.3,从而转动天线的位置_DiSEqC_GotoSatPosition。
3,当接了DiSEqC设备,同时使用motor这种混合解法的时候,跑的流程跟前面单独接其中一种时不一样。对应的接口函数_MultiDiSEqc_SwitchPort。此时在切换不同卫星的时候,需要先下cmd,_DiSEqC_SwitchPort 选择相对应的prot口;然后再下cmd ,_DiSEqC_GotoSatPosition 转动motor。本身这个流程没有问题,但是2次下cmd的时间太接近,因为都是用同一电缆线传送cmd,所以间隔时间太短可能会有问题,目前发现会导致马达无法转动,有时切换的port口也不对。中间加上MsOS_DelayTask(500); 问题可以解决。4,切换不同卫星之间的节目,如果节目的Frequency 刚好相同,motor不转动。
      
4,对于这个问题,在切节目的时候多加上是否同一卫星判断条件即可:
              
if ((LastCarrierParam.u32Frequency == stCarrierParam.u32Frequency)&&(LastCarrierParam.SatParam.u8SatID == stCarrierParam.SatParam.u8SatID))
{     
            ZAP_DBG(printf("Last signal is the same \n"));
            return TRUE;
}



回复

使用道具 举报

大神点评3

bean.yang 发表于:2016-7-22 09:08:47
回复

使用道具 举报

halleyhuang 发表于:2016-7-25 18:14:45
多总结,多进步
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

HaoQiao 发表于:2016-7-26 11:35:10
很受用啊
回复

使用道具 举报

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