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; }
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; }