Esempio n. 1
0
BOOL ota_load_parameter()
{
	UINT32 addr;
	UINT32 len;	
    unsigned char *p = NULL;
	UINT32 m_ota_load_offset;
	BOOL ret = FALSE;
	do 
	{
		if(!find_ota_loader(&m_ota_load_offset))
			break;;

		chunk_init(m_ota_load_offset+SYS_FLASH_BASE_ADDR, 0x100000);
		
		// get user_db address
		if(!get_chuck_add_len(0x15Fa0200, &addr, &len))
			break;

		p = (UINT8 *)addr;
		MEMCPY(&m_ota_cfg, p, sizeof(m_ota_cfg));
	    
	    ota_freq = m_ota_cfg.t_node.frq;
	    ota_symb = m_ota_cfg.t_node.sym;
	    ota_pid = m_ota_cfg.pid;
		ota_pol = m_ota_cfg.t_node.pol;
		ret = TRUE;
	}while(0);

	if(!ret)
	{
		S_NODE *p_s_node = &m_ota_cfg.s_node;
		p_s_node->lnb_low = 5150;
		p_s_node->lnb_high= 5150;
		p_s_node->DiSEqC_port = 4;
	    ota_freq = 4150;
	    ota_symb = 40000;
	    ota_pid = 256;
		ota_pol = 0;
		
	}
	libc_printf("%s: p=0x%x, Freq=%d, ota_symb=%d, ota_pid=%d, ota_pol =%d\n", \
		__FUNCTION__, p, ota_freq, ota_symb, ota_pid, ota_pol);

	OSD_ChangeFocus((POBJECT_HEAD)&win_otaupg_con, 7, 0);
	CONTAINER *con = &wota_con0;
	OSD_SetAttr(con, C_ATTR_INACTIVE);
	con = &wota_con1;
	OSD_SetAttr(con, C_ATTR_INACTIVE);		
	PTEXT_FIELD pText = &wota_txt0;
	OSD_SetAttr(pText, C_ATTR_INACTIVE);
	pText = &wota_txt1;
	OSD_SetAttr(pText, C_ATTR_INACTIVE);		

	PMULTISEL pmul = &wota_num0;
	OSD_SetAttr(pmul, C_ATTR_INACTIVE);	
	pmul = &wota_num1;
	OSD_SetAttr(pmul, C_ATTR_INACTIVE);

	return ret;
}
Esempio n. 2
0
BOOL ota_load_parameter()
{
	UINT32 addr;
	UINT32 len;	
    unsigned char *p = NULL;
	UINT32 m_ota_load_offset;
	BOOL ret = FALSE;	
	UINT32 ota_bin_max_size = 0x200000;

	struct sto_device *flash_dev = (struct sto_device *)dev_get_by_type(NULL, HLD_DEV_TYPE_STO);

#ifndef _CAS9_CA_ENABLE_
	do 
	{
		if(!find_ota_loader(&m_ota_load_offset))
			break;;

		if((UINT32)flash_dev->totol_size > m_ota_load_offset)
		{
			ota_bin_max_size = (UINT32)flash_dev->totol_size-m_ota_load_offset;
		}
		if(ota_bin_max_size < 0x100000)
			ota_bin_max_size = 0x100000;
		
		chunk_init(m_ota_load_offset+SYS_FLASH_BASE_ADDR, ota_bin_max_size);
		
		// get user_db address
		if(!get_chunk_add_len(0x15Fa0200, &addr, &len))
			break;

		p = (UINT8 *)addr;
		MEMCPY(&m_ota_cfg, p, sizeof(m_ota_cfg));
	    
	    ota_freq = m_ota_cfg.t_node.frq;
	    ota_symb = m_ota_cfg.t_node.sym;
	    ota_pid = m_ota_cfg.pid;
		ota_pol = m_ota_cfg.t_node.pol;
        ota_modulation= m_ota_cfg.t_node.FEC_inner; //DVBC 
		ret = TRUE;
	}while(0);
#endif

	if((ota_freq == 0) && (ota_symb == 0) && (ota_pid == 0))
	{
#if (SYS_PROJECT_FE == PROJECT_FE_DVBS || SYS_PROJECT_FE == PROJECT_FE_DVBS2)
	    ota_freq = 4150;
	    ota_symb = 40000;
	    ota_pid = 256;
		ota_pol = 0;
#else
        //DVBC setting
	    ota_freq = 5050;
	    ota_symb = 6875;
	    ota_pid = OTA_DATA_PID;
		ota_modulation = QAM64;

#endif		
	}

#if (SYS_PROJECT_FE == PROJECT_FE_DVBS || SYS_PROJECT_FE == PROJECT_FE_DVBS2)
	OSD_ChangeFocus((POBJECT_HEAD)&win_otaupg_con, 7, 0);
	CONTAINER *con = &wota_con0;
	OSD_SetAttr(con, C_ATTR_INACTIVE);
	con = &wota_con1;
	OSD_SetAttr(con, C_ATTR_INACTIVE);		
	PTEXT_FIELD pText = &wota_txt0;
	OSD_SetAttr(pText, C_ATTR_INACTIVE);
	pText = &wota_txt1;
	OSD_SetAttr(pText, C_ATTR_INACTIVE);		

	PMULTISEL pmul = &wota_num0;
	OSD_SetAttr(pmul, C_ATTR_INACTIVE);	
	pmul = &wota_num1;
	OSD_SetAttr(pmul, C_ATTR_INACTIVE);
#endif

	return ret;
}