コード例 #1
0
ファイル: lib_as.c プロジェクト: Janesak1977/ali3602
static UINT32 as_nim_tuning(struct as_module_info *info, T_NODE *tp)
{
#if (SYS_PROJECT_FE == PROJECT_FE_DVBS||SYS_PROJECT_FE == PROJECT_FE_DVBS2)	
    struct cc_xpond_info *xponder = &info->xponder;
    struct cc_antenna_info *antenna = &info->antenna;
    xponder->frq = tp->frq;
    xponder->sym = tp->sym;
    xponder->pol = info->polar = tp->pol;
    if (antenna->pol != LNB_POL_POFF)
        antenna->pol = info->polar+1;
    set_antenna(antenna);
    set_xpond(xponder);
    /* for low symbol rate detection */
    return (AS_TUNE_TIMEOUT*5);

#elif (SYS_PROJECT_FE == PROJECT_FE_DVBC)
    nim_channel_change(info->nim, tp->frq, tp->sym, tp->FEC_inner);
    return AS_TUNE_TIMEOUT;
#endif
}
コード例 #2
0
ファイル: win_tp_list.c プロジェクト: alkap007/ali3606
static void win_tplist_tuner_frontend(void)
{
	S_NODE s_node;
	T_NODE t_node;
#ifdef NEW_DEMO_FRAME
	struct ft_antenna antenna;
	union ft_xpond	xpond_info;
	struct nim_device *nim = NULL;
#else
	struct cc_antenna_info antenna;
	struct cc_xpond_info	xpond_info;
#endif

	OBJLIST* ol;
	UINT32 tp_idx;
    UINT16 pre_sat_id,cur_sat_id;
	UINT8 back_saved;
    BOOL old_get_key;

    nim_io_control(g_nim_dev, NIM_DRIVER_STOP_CHANSCAN, 0);
    ap_set_key_notify_proc(win_tplist_key_notify_proc);
    old_get_key = ap_enable_key_task_get_key(TRUE);

    win_signal_set_level_quality(0, 0, 0);
    win_signal_update();
	OSD_UpdateVscr(OSD_GetTaskVscr(osal_task_get_current_id()));

	ol = &tplst_olist;

	tp_idx = OSD_GetObjListCurPoint(ol);
	
	get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx,&s_node);
	get_tp_at(s_node.sat_id,tp_idx,&t_node);

#ifdef SUPPORT_TWO_TUNER
#ifdef SUPPORT_SELECT_SAME_SAT
	cur_tuner_idx = s_node.reserve_1; //antset_cur_tuner;//s_node.tuner1_valid? 0 : 1;
#else
	cur_tuner_idx = s_node.tuner1_valid? 0 : 1;
#endif
#endif

#ifndef NEW_DEMO_FRAME
	struct cc_antenna_info antenna;
	struct cc_xpond_info	xpond_info;

	sat2antenna_ext(&s_node, &antenna,cur_tuner_idx);
	xpond_info.frq = t_node.frq;
	xpond_info.sym = t_node.sym;
	xpond_info.pol = t_node.pol;

	set_antenna(&antenna);
	set_xpond(&xpond_info);
#else
	MEMSET(&antenna, 0, sizeof(struct ft_antenna));
	MEMSET(&xpond_info, 0, sizeof(union ft_xpond));
	sat2antenna(&s_node, &antenna);	
	xpond_info.s_info.type = FRONTEND_TYPE_S;
	xpond_info.s_info.frq = t_node.frq;
	xpond_info.s_info.sym = t_node.sym;
	xpond_info.s_info.pol = t_node.pol;
	xpond_info.s_info.tp_id = t_node.tp_id;
#ifdef SUPPORT_SELECT_SAME_SAT
	nim = (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, ((s_node.reserve_1 == 0)? 0 : ((s_node.reserve_1 == 1) ? 1 : 0)));
#else
	nim = (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, (s_node.tuner1_valid ? 0 : (s_node.tuner2_valid ? 1 : 0)));
#endif
	
	frontend_tuning(nim, &antenna, &xpond_info, 1);
	
#endif
    
    if(pre_tp_sat_idx != cur_tp_sat_idx)
    {
		get_tuner_sat(TUNER_EITHER, pre_tp_sat_idx, &s_node);			
		pre_sat_id = s_node.sat_id;

		get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);			
		cur_sat_id = s_node.sat_id;
    
		wincom_dish_move_popup_open(/*pre_sat_id*/0xFFFF,cur_sat_id,cur_tuner_idx,&back_saved);
        pre_tp_sat_idx = cur_tp_sat_idx;
    }

    ap_enable_key_task_get_key(old_get_key);
    ap_set_key_notify_proc(NULL);
    nim_io_control(g_nim_dev, NIM_DRIVER_STOP_CHANSCAN, 0);
}
コード例 #3
0
ファイル: lib_as.c プロジェクト: Janesak1977/ali3602
static INT32 as_blind_scan()
{
    UINT32 from = as_info->param.as_from;
    UINT32 to = as_info->param.as_to;
    UINT32 loop;
    INT32 ret = SUCCESS;
    struct NIM_Auto_Scan *as_para = &as_info->nim_para;

	if ((get_LNB_ctrl(as_info->antenna.lnb_type) != LNB_CTRL_22K)
		&&(get_LNB_ctrl(as_info->antenna.lnb_type) != LNB_CTRL_UNICABLE) /* Unicable */
			||(!as_info->dual_LNB)) 
	{
        if (as_info->voltage_ctrl)
        {
            loop = as_info->cur_sat.pol;
            as_info->polar = as_info->cur_sat.pol - 1;
            if (as_info->dual_LNB)
            {
                if (as_info->polar == 0) 
                    to = 1550;
                else
                    from = 1551;
            }
        }
        else
        {
            as_info->polar = 0;
            loop = as_info->dual_LNB? 1: 2;
        }
    }
    else
    {
        if (as_info->voltage_ctrl)
        {
            loop = as_info->cur_sat.pol;
            as_info->polar = as_info->cur_sat.pol - 1;
        }
        else
        {
            as_info->polar = 0;
            loop = 2;
        }
    }
	if (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_22K
		|| (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_UNICABLE
		   && as_info->dual_LNB)/* Unicable */)
	{
        as_info->antenna.k22 = as_info->cur_sat.k22 = 0;
        if (as_info->cur_sat.lnb_low>as_info->cur_sat.lnb_high)
            to = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_high;
        else
            to = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_low;

        from = as_info->param.as_from;
    }
    while (!as_info->stop_scan_signal)
    {
        for(; as_info->polar<loop; as_info->polar++)
        {
			if (as_info->antenna.pol != LNB_POL_POFF) {
          /* it is not good... */
				if (as_para->unicable)	//Unicable
					as_info->antenna.pol = as_info->polar;
				else
					as_info->antenna.pol = as_info->polar+1;
			}
       
			if (!as_para->unicable)	//Unicable
			{
				set_antenna(&as_info->antenna);
				wait_nim_ready();
				//osal_task_sleep(350);
			}
//            as_info->param.as_from = from;
//            as_info->param.as_to = to;

            if (as_info->stop_scan_signal)
            	break;

            // make up the autoscan parameter list
            as_para->sfreq = from;
            as_para->efreq = to;
            as_para->callback = dvbs_as_callback;
            ret = nim_ioctl_ext(as_info->nim, NIM_DRIVER_AUTO_SCAN, as_para);
            if (ret!=SUCCESS)
            	break;
            dvbs_as_callback(AS_SGN_INIT, 0, 0, 0, 0);
        }
		if (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_UNICABLE
			&& !as_info->dual_LNB) /* Unicable */		
			break;		
		else if (ret||(as_info->cur_sat.k22 == 1)||
			((get_LNB_ctrl(as_info->cur_sat.lnb_type)!=LNB_CTRL_22K)
			&&(get_LNB_ctrl(as_info->cur_sat.lnb_type)!=LNB_CTRL_UNICABLE)/*Unicable*/))
			break;
		else 
        {
            as_info->antenna.k22 = as_info->cur_sat.k22 = 1;
            if (as_info->cur_sat.lnb_low>as_info->cur_sat.lnb_high)
            from = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_low;
            else
            from = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_high;

            to = as_info->param.as_to;
            if (as_info->voltage_ctrl)
            {
                loop = as_info->cur_sat.pol;
                as_info->polar = loop - 1;
            }
            else
            {
                as_info->polar = 0;
                loop = 2;
            }
        }
    }
    
    return ret;
}