專利名稱:一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法
一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種機(jī)頂盒的升級數(shù)據(jù)的接收方法,尤其涉及一種基于機(jī)頂盒升級數(shù) 據(jù)的二維索引表快速緩沖方法。
背景技術(shù):
隨著數(shù)字電視終端行業(yè)的發(fā)展以及數(shù)字電視增值業(yè)務(wù)的不斷推出,廣電運(yùn)營商有 升級的要求;同時(shí)機(jī)頂盒供應(yīng)商也有可能提出軟件升級的要求用以解決已發(fā)現(xiàn)的軟件缺 陷。因此,機(jī)頂盒軟件升級是現(xiàn)有機(jī)頂盒技術(shù)中非常重要的一個(gè)環(huán)節(jié),而升級中的數(shù)據(jù)的獲 取接收的方法是升級技術(shù)的關(guān)鍵。運(yùn)營商提供的升級數(shù)據(jù)一般打包成SECTION格式,以數(shù) 據(jù)流的方式在有線信道上循環(huán)播出,一般應(yīng)用程序通過配置數(shù)據(jù)通道濾波器獲取數(shù)據(jù)包, 濾波器獲取數(shù)據(jù)需要知道每個(gè)包的具體包號,而普通獲取數(shù)據(jù)包的方法是獲取到一個(gè)數(shù)據(jù) 包后,將數(shù)據(jù)包號增加一,獲取下一個(gè)數(shù)據(jù)包。但數(shù)據(jù)流在有線信道上是以順序輪播的方式 播出,就是說一個(gè)特定的數(shù)據(jù)包,在整個(gè)升級流播發(fā)一遍的時(shí)間內(nèi)只會(huì)出現(xiàn)一次,如果錯(cuò)過 了接收該數(shù)據(jù)的時(shí)機(jī),就必須等到升級流的發(fā)送循環(huán)一次才能得到該數(shù)據(jù)。這樣就造成數(shù) 據(jù)接收的時(shí)間需要很長。如果考慮中間的誤碼干擾等因素,數(shù)據(jù)接收的進(jìn)度會(huì)非常緩慢。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題,在于提供一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速 緩沖方法,在進(jìn)行機(jī)頂盒接收升級數(shù)據(jù)包時(shí),采用二維表記錄快速緩沖的數(shù)據(jù)的邏輯索引 值,來查詢對應(yīng)的數(shù)據(jù)包是否完成接收,從而減少了數(shù)據(jù)接收的時(shí)間,防止了機(jī)頂盒緩沖區(qū) 的溢出。本發(fā)明是這樣實(shí)現(xiàn)的一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法,其 特征在于,包括以下步驟步驟10、定義一個(gè)范圍不大于線性隊(duì)列最大值10X1024的邏輯索引,定義二維索 引表,該表的兩個(gè)維度分別與升級數(shù)據(jù)中的兩個(gè)字段相對應(yīng);步驟20、在機(jī)頂盒中設(shè)置一個(gè)緩沖區(qū),初始化機(jī)頂盒系統(tǒng)以及二維索引表,將表項(xiàng) 中的值都設(shè)為無效,并賦予一默認(rèn)值,在機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件;步驟30、打開數(shù)據(jù)通道,通過濾波器連續(xù)將升級數(shù)據(jù)按順序填入緩沖區(qū)中;步驟40、在緩沖區(qū)接收升級數(shù)據(jù)包的過程中,緩沖區(qū)中的每個(gè)數(shù)據(jù)包的位置根據(jù) 邏輯索引將對應(yīng)的數(shù)據(jù)包保存到線性隊(duì)列中,并將其對應(yīng)的邏輯索引值填入二維表的兩個(gè) 字段相對應(yīng)的位置中;步驟50、監(jiān)測數(shù)據(jù)包在緩沖區(qū)中的容量,判斷緩沖區(qū)中數(shù)據(jù)包是否達(dá)到總?cè)萘康?90%,否則返回步驟40,是則轉(zhuǎn)入步驟60 ;步驟60、關(guān)閉數(shù)據(jù)通道,用數(shù)據(jù)包中兩個(gè)字段查詢二維索引表中對應(yīng)的表項(xiàng)目,判 斷表項(xiàng)目中的值是否為默認(rèn)值,是則數(shù)據(jù)包尚未被接收,否則數(shù)據(jù)包已被接收,判斷升級數(shù) 據(jù)包是否被全部接收完畢,是則轉(zhuǎn)入步驟70,否則根據(jù)索引表的記錄獲取尚未接收到的數(shù)
3據(jù)包,再修改機(jī)頂盒系統(tǒng)中的接收條件,返回步驟30 ;步驟70、流程結(jié)束。本發(fā)明具有如下優(yōu)點(diǎn)一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法,在 機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件,并通過配置數(shù)據(jù)通道濾波器獲取升級數(shù)據(jù)包, 分析相應(yīng)數(shù)據(jù)包中的兩個(gè)字段,來查詢二維索引表中的對應(yīng)表項(xiàng)目,當(dāng)對應(yīng)的表項(xiàng)中的值 不為默認(rèn)值時(shí),則該對應(yīng)的數(shù)據(jù)包已經(jīng)接收到,然后遍歷二維索引表,根據(jù)索引表中的記錄 獲取尚未接收到的數(shù)據(jù)包,修改機(jī)頂盒系統(tǒng)中數(shù)據(jù)接收通道的接收條件繼續(xù)接收個(gè)別缺少 的數(shù)據(jù)包。這樣可以達(dá)到機(jī)頂盒升級數(shù)據(jù)的快速被接收,從而減少了數(shù)據(jù)接收的時(shí)間,防止 了機(jī)頂盒緩沖區(qū)的溢出。
圖1為本發(fā)明方法流程示意圖。圖2是本發(fā)明的二維索引表。圖3是本發(fā)明以私有定義的表進(jìn)行封裝升級數(shù)據(jù)包。
具體實(shí)施方式下面結(jié)合圖1本發(fā)明方法流程示意圖,對一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表 快速緩沖方法作進(jìn)一步的說明步驟10、定義一個(gè)范圍不大于線性隊(duì)列最大值10X1024的邏輯索引,定義二維索 引表,該表的兩個(gè)維度分別與升級數(shù)據(jù)中的兩個(gè)字段相對應(yīng);步驟20、在機(jī)頂盒中設(shè)置一個(gè)緩沖區(qū),初始化機(jī)頂盒系統(tǒng)以及二維索引表如圖2 所示,將表項(xiàng)中的值都設(shè)為無效,默認(rèn)為-1,在機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件;步驟30、打開數(shù)據(jù)通道,通過濾波器連續(xù)將升級數(shù)據(jù)按順序填入緩沖區(qū)中;步驟40、在緩沖區(qū)接收升級數(shù)據(jù)包的過程中,緩沖區(qū)中的每個(gè)數(shù)據(jù)包的位置根據(jù) 邏輯索引將對應(yīng)的數(shù)據(jù)包保存到線性隊(duì)列中,并將其對應(yīng)的邏輯索引值填入二維表的兩個(gè) 字段相對應(yīng)的位置中;步驟50、監(jiān)測數(shù)據(jù)包在緩沖區(qū)中的容量,判斷緩沖區(qū)中數(shù)據(jù)包是否達(dá)到總?cè)萘康?90%,否則返回步驟40,是則轉(zhuǎn)入步驟60 ;步驟60、關(guān)閉數(shù)據(jù)通道,用數(shù)據(jù)包中兩個(gè)字段查詢二維索引表中對應(yīng)的表項(xiàng)目,判 斷表項(xiàng)目中的值是否為-1,是則數(shù)據(jù)包尚未被接收,否則數(shù)據(jù)包已被接收,判斷升級數(shù)據(jù)包 是否被全部接收完畢,是則轉(zhuǎn)入步驟70,否則根據(jù)索引表的記錄獲取尚未接收到的數(shù)據(jù)包, 再修改機(jī)頂盒系統(tǒng)中的接收條件,返回步驟30 ;步驟70、流程結(jié)束。其中所述的升級數(shù)據(jù)包按以下定義進(jìn)行封裝,其中結(jié)構(gòu)如圖3所示201、Tablejd選用DVB標(biāo)準(zhǔn)中用戶自定義表的值,取值范圍0x80-0xFE。本標(biāo)準(zhǔn) 暫定為0x80 ;202、SeCtiOn_length表示從該字段的下一字節(jié)開始到分段結(jié)束(包括CRC)的長 度;203、Part_number表示該分段所屬的Part的序號,占用2個(gè)字節(jié),僅后一字節(jié)有效,取值范圍0-255 ;204、Last_part_number 表示最后一個(gè) Part 的序號,取值范圍 0-255 ;205、Section_number表示該分段的序號,取值范圍0-255 ;206、Last_section_number表示最后一個(gè)分段的序號,取值范圍0-255 ;207、Data_section需要打包傳輸,PID值應(yīng)選取0x0015_0xlFFE之間的值,該P(yáng)ID NIT Linkage—descriptor 巾白勺 Download_PID —至文。在緩沖區(qū)接收升級數(shù)據(jù)包的過程中,通過2進(jìn)程分別控制進(jìn)程一(控制監(jiān)控進(jìn)程)控制數(shù)據(jù)包接收啟動(dòng)及結(jié)束;設(shè)置接收數(shù)據(jù)包中兩個(gè)階 段的接收條件;監(jiān)控?cái)?shù)據(jù)接收進(jìn)程,顯示升級數(shù)據(jù)包接收進(jìn)度。進(jìn)程二(數(shù)據(jù)接收,緩沖進(jìn)程)循環(huán)接收數(shù)據(jù),控制監(jiān)控進(jìn)程設(shè)置好接收條件并 啟動(dòng)數(shù)據(jù)包接收,該進(jìn)程就根據(jù)設(shè)置的接收條件接收數(shù)據(jù),接收下的數(shù)據(jù)包按照一定規(guī)則 緩沖并存儲(chǔ)下來。根據(jù)控制監(jiān)控進(jìn)程判斷數(shù)據(jù)包接收是否完整,控制該進(jìn)程工作的結(jié)束。下面結(jié)合一具體的實(shí)例,對一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法 作進(jìn)一步的說明步驟10、定義一個(gè)范圍不大于線性隊(duì)列最大值10X1024的邏輯索引如 LdrSectDatalndex,定義二維索引表如圖2所示,該表的兩個(gè)維度分別與升級數(shù)據(jù)中的 兩個(gè)字段相對應(yīng),兩個(gè)字段分別為PartNo、SectionNo (數(shù)據(jù)包中定義封裝的字段Part_ number、Section_number);步驟20、在機(jī)頂盒中設(shè)置一個(gè)緩沖區(qū),初始化機(jī)頂盒系統(tǒng)以及二維索引表,將表項(xiàng) 中的值都設(shè)為無效,默認(rèn)為-1,在機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件,如這時(shí)要接收 機(jī)頂盒的音量控制升級的數(shù)據(jù)包;步驟30、打開數(shù)據(jù)通道,通過濾波器連續(xù)將升級數(shù)據(jù)按順序填入緩沖區(qū)中;步驟40、在緩沖區(qū)接收升級數(shù)據(jù)包的過程中,緩沖區(qū)中的每個(gè)數(shù)據(jù)包的位置根據(jù) 邏輯索引將對應(yīng)的數(shù)據(jù)包保存到線性隊(duì)列中,并將其對應(yīng)的邏輯索引值填入二維表的兩個(gè) 字段相對應(yīng)的位置中,如其中一個(gè)邏輯索引值LdrSectDatalndex是3095(00,00);步驟50、監(jiān)測數(shù)據(jù)包在緩沖區(qū)中的容量,判斷緩沖區(qū)中數(shù)據(jù)包是否達(dá)到總?cè)萘康?90%,否則返回步驟40,是則轉(zhuǎn)入步驟60 ;步驟60、關(guān)閉數(shù)據(jù)通道,用數(shù)據(jù)包中兩個(gè)字段PartNo和SectionNo (00,00)查詢 二維索引表中對應(yīng)的表項(xiàng)目,判斷表項(xiàng)目中的值是否為-1,是則數(shù)據(jù)包尚未被接收,否則數(shù) 據(jù)包已被接收,由于這時(shí)要接收的數(shù)據(jù)包所對應(yīng)的邏輯索引值是3095而非為-1,說明該數(shù) 據(jù)包已經(jīng)被接到了 ;然后逐一判斷升級數(shù)據(jù)包是否被全部接收完畢,是,接收完畢則流程結(jié) 束,否,則根據(jù)索引表的記錄獲取尚未接收到的數(shù)據(jù)包,如這時(shí)的數(shù)據(jù)包所對應(yīng)的邏輯索引 值是6058 (6058在二維索引表中沒有對應(yīng)的值),其中該數(shù)據(jù)包并未被接收,此時(shí)再修改機(jī) 頂盒系統(tǒng)中的接收條件,縮小接收的數(shù)據(jù)包條件(排除已經(jīng)接收的數(shù)據(jù)包的條件),返回步 驟30,繼續(xù)接收個(gè)別缺少的數(shù)據(jù)包。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請專利范圍所做的均等變化與 修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法,其特征在于,包括以下步驟步驟10、定義一個(gè)范圍不大于線性隊(duì)列最大值10×1024的邏輯索引,定義二維索引表,該表的兩個(gè)維度分別與升級數(shù)據(jù)中的兩個(gè)字段相對應(yīng);步驟20、在機(jī)頂盒中設(shè)置一個(gè)緩沖區(qū),初始化機(jī)頂盒系統(tǒng)以及二維索引表,將表項(xiàng)中的值都設(shè)為無效,并賦予一默認(rèn)值,在機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件;步驟30、打開數(shù)據(jù)通道,通過濾波器連續(xù)將升級數(shù)據(jù)按順序填入緩沖區(qū)中;步驟40、在緩沖區(qū)接收升級數(shù)據(jù)包的過程中,緩沖區(qū)中的每個(gè)數(shù)據(jù)包的位置根據(jù)邏輯索引將對應(yīng)的數(shù)據(jù)包保存到線性隊(duì)列中,并將其對應(yīng)的邏輯索引值填入二維表的兩個(gè)字段相對應(yīng)的位置中;步驟50、監(jiān)測數(shù)據(jù)包在緩沖區(qū)中的容量,判斷緩沖區(qū)中數(shù)據(jù)包是否達(dá)到總?cè)萘康?0%,否則返回步驟40,是則轉(zhuǎn)入步驟60;步驟60、關(guān)閉數(shù)據(jù)通道,用數(shù)據(jù)包中兩個(gè)字段查詢二維索引表中對應(yīng)的表項(xiàng)目,判斷表項(xiàng)目中的值是否為默認(rèn)值,是則數(shù)據(jù)包尚未被接收,否則數(shù)據(jù)包已被接收,判斷升級數(shù)據(jù)包是否被全部接收完畢,是則轉(zhuǎn)入步驟70,否則根據(jù)索引表的記錄獲取尚未接收到的數(shù)據(jù)包,再修改機(jī)頂盒系統(tǒng)中的接收條件,返回步驟30;步驟70、流程結(jié)束。
2.根據(jù)權(quán)利要求1所述的一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法,其特 征在于所述的升級數(shù)據(jù)包按以下定義進(jìn)行封裝'201、Tablejd選用DVB標(biāo)準(zhǔn)中用戶自定義表的值,取值范圍0x80-0xFE。本標(biāo)準(zhǔn)暫定 為 0x80 ;'202、SeCtion_length表示從該字段的下一字節(jié)開始到分段結(jié)束(包括CRC)的長度;'203、Part_number表示該分段所屬的Part的序號,占用2個(gè)字節(jié),僅后一字節(jié)有效,取 值范圍0-255 ;'204、Last_part_number表示最后一個(gè)Part的序號,取值范圍0-255;'205、Section_number表示該分段的序號,取值范圍0-255;'206、Last_section_number表示最后一個(gè)分段的序號,取值范圍0-255;'207、Data_section需要打包傳輸,PID值應(yīng)選取0x0015_0xlFFE之間的值,該P(yáng)ID值應(yīng) 與 NIT Linkage_descriptor 巾白勺 Download_PID —至文。
全文摘要
本發(fā)明提供一種基于機(jī)頂盒升級數(shù)據(jù)的二維索引表快速緩沖方法,在機(jī)頂盒系統(tǒng)中設(shè)置接收升級數(shù)據(jù)包的條件,并通過配置數(shù)據(jù)通道濾波器大批量獲取升級數(shù)據(jù)包,并對接收到的升級數(shù)據(jù)包做分析和記錄分析相應(yīng)數(shù)據(jù)包中的兩個(gè)字段,來查詢二維索引表中的對應(yīng)表項(xiàng)目,當(dāng)對應(yīng)的表項(xiàng)中的值不為默認(rèn)值時(shí),則該對應(yīng)的數(shù)據(jù)包已經(jīng)接收到,否則在二維索引表中做相關(guān)記錄;然后遍歷二維索引表,根據(jù)索引表中的記錄獲取尚未接收到的數(shù)據(jù)包,修改機(jī)頂盒系統(tǒng)中數(shù)據(jù)接收通道的接收條件繼續(xù)接收個(gè)別缺少的數(shù)據(jù)包。本發(fā)明可以達(dá)到機(jī)頂盒升級數(shù)據(jù)的快速被接收,從而減少了數(shù)據(jù)接收的時(shí)間,防止了機(jī)頂盒緩沖區(qū)的溢出。
文檔編號G06F17/30GK101945207SQ20101028581
公開日2011年1月12日 申請日期2010年9月17日 優(yōu)先權(quán)日2010年9月17日
發(fā)明者郭鑫俊 申請人:福建新大陸通信科技股份有限公司