本發(fā)明涉及數(shù)字電視領(lǐng)域,尤其涉及一種機(jī)頂盒解復(fù)用器(demux)壓力測(cè)試方法及系統(tǒng)。
背景技術(shù):
機(jī)頂盒在生產(chǎn)過(guò)程中,需要對(duì)demux(解復(fù)用器)進(jìn)行壓力測(cè)試。解復(fù)用器壓力測(cè)試目前采用過(guò)濾數(shù)據(jù)表的方式為:
設(shè)置主線程和子線程,在主線程中設(shè)置需要過(guò)濾的數(shù)據(jù)表、數(shù)據(jù)表pid(進(jìn)程標(biāo)識(shí)符)以及需要過(guò)濾的次數(shù),并將過(guò)濾標(biāo)記(filter.enable)置為1,然后在主線程中等待固定時(shí)長(zhǎng)(足夠長(zhǎng)時(shí)間,如5s、30s等),固定時(shí)長(zhǎng)到達(dá)后將過(guò)濾標(biāo)記(filter.enable)置為0,即終止該數(shù)據(jù)表的過(guò)濾。
子線程中定義一個(gè)全局變量標(biāo)記(pass_flag),在主線程等待過(guò)程中,如果解復(fù)用器過(guò)濾到有相應(yīng)數(shù)據(jù)表pid時(shí),子線程中全局變量標(biāo)記將會(huì)被置為1,當(dāng)全局變量標(biāo)記將會(huì)被置為1時(shí)則對(duì)該數(shù)據(jù)表的壓力測(cè)試通過(guò)。
以上方法主要有兩種弊端:
其一:由于信號(hào)傳輸不穩(wěn)定,或有些異常時(shí),將有可能導(dǎo)致demux過(guò)濾數(shù)據(jù)表的時(shí)長(zhǎng)比主線程中所規(guī)定的固定時(shí)長(zhǎng)短。這樣在子線程的全局變量標(biāo)記早已經(jīng)置為1,即已經(jīng)接收到過(guò)濾數(shù)據(jù)表,那么還需要等待主線程固定時(shí)長(zhǎng)結(jié)束。
例如,假設(shè)固定時(shí)長(zhǎng)為30s,而實(shí)際demux過(guò)濾出數(shù)據(jù)表只用了15s,這樣大量的時(shí)間將會(huì)浪費(fèi)在主線程的時(shí)延上,最終降低測(cè)試效率。
其二,在demux進(jìn)行壓力測(cè)試時(shí),如相同pid的數(shù)據(jù)表需要連續(xù)接收多次,例如三次,那么在子線程中只要獲取到一次數(shù)據(jù)表pid,就會(huì)將子程序中的全局變量標(biāo)記置為1,即便有很多次沒(méi)有過(guò)濾到數(shù)據(jù)表pid而最終測(cè)試結(jié)果還是通過(guò),這樣就導(dǎo)致最終demux壓力測(cè)試的可信度急劇下降,甚至為失敗。
故現(xiàn)有的對(duì)demux壓力測(cè)試耗時(shí)嚴(yán)重,并且測(cè)試可信度不夠高,不滿足測(cè)試要求。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,有必要針對(duì)上述對(duì)解復(fù)用器(demux)壓力測(cè)試存在耗時(shí)嚴(yán)重且可信度不高的問(wèn)題,提供一種機(jī)頂盒解復(fù)用器壓力測(cè)試方法及系統(tǒng)。
本發(fā)明提供的一種機(jī)頂盒解復(fù)用器壓力測(cè)試方法,包括如下步驟:
s10:在主線程中定義一個(gè)全局使能標(biāo)記,并設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),開始測(cè)試時(shí)全局使能標(biāo)記置為1;
s20:在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若全局使能標(biāo)記置為1則子線程開始過(guò)濾數(shù)據(jù)表的pid,過(guò)濾到一次則記錄一次;
s30:主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò);
s40:若主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試并且demux壓力測(cè)試通過(guò)。
進(jìn)一步的,所述步驟s10具體為:設(shè)置需要過(guò)濾的數(shù)據(jù)表為pat表、sdt表、nit表三個(gè)數(shù)據(jù)表。
進(jìn)一步的,設(shè)定循環(huán)周期小于主線程固定時(shí)長(zhǎng)除以所有數(shù)據(jù)表pid需要過(guò)濾的總次數(shù)。
進(jìn)一步的,所述設(shè)定范圍為不低于需要次數(shù)的95%。
本發(fā)明提供的一種機(jī)頂盒解復(fù)用器壓力測(cè)試系統(tǒng),包括:
主線程設(shè)置模塊,在主線程中定義一個(gè)全局使能標(biāo)記,并設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),開始測(cè)試時(shí)全局使能標(biāo)記置為1;
子線程設(shè)置模塊,在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若全局使能標(biāo)記置為1則子線程開始過(guò)濾數(shù)據(jù)表的pid,過(guò)濾到一次則記錄一次;
pid過(guò)濾次數(shù)檢測(cè)模塊,控制主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò);
測(cè)試結(jié)束模塊,若主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試并且demux壓力測(cè)試通過(guò)。
進(jìn)一步的,設(shè)置需要過(guò)濾的數(shù)據(jù)表為pat表、sdt表、nit表三個(gè)數(shù)據(jù)表。
進(jìn)一步的,所述設(shè)定循環(huán)周期小于主線程固定時(shí)長(zhǎng)除以所有數(shù)據(jù)表pid需要過(guò)濾的總次數(shù)。
進(jìn)一步的,所述設(shè)定范圍為不低于需要次數(shù)的95%。
本發(fā)明機(jī)頂盒解復(fù)用器壓力測(cè)試方法及系統(tǒng),在主線程定義全局使能標(biāo)記,設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),在子線程定義一組全局?jǐn)?shù)組變量標(biāo)記記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò),主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),在主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0則demux壓力測(cè)試通過(guò),結(jié)束測(cè)試,這樣就能在測(cè)試通過(guò)后結(jié)束測(cè)試,不需要等待固定時(shí)長(zhǎng),并且檢測(cè)結(jié)果準(zhǔn)確,可信度高,極大滿足測(cè)試要求。
附圖說(shuō)明
圖1是一個(gè)實(shí)施例中的機(jī)頂盒解復(fù)用器壓力測(cè)試方法的流程圖;
圖2是一個(gè)實(shí)施例中的機(jī)頂盒解復(fù)用器壓力測(cè)試系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是一個(gè)實(shí)施例中的機(jī)頂盒解復(fù)用器壓力測(cè)試方法的流程圖,如圖1所示,該方法包括如下步驟:
s10:在主線程中定義一個(gè)全局使能標(biāo)記,并設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),開始測(cè)試時(shí)全局使能標(biāo)記置為1。
為使得主線程能夠?qū)毫y(cè)試進(jìn)行控制,該實(shí)施例中在主線程中定義一個(gè)全局使能標(biāo)記用來(lái)控制壓力測(cè)試的開始和結(jié)束,全局使能標(biāo)記置為1則測(cè)試開始,全局使能標(biāo)記置為0則測(cè)試結(jié)束。然后設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),設(shè)置好后全局使能標(biāo)記置為1開始測(cè)試。
進(jìn)一步的,為方便測(cè)試,該步驟具體為:設(shè)置需要過(guò)濾的數(shù)據(jù)表為pat表(節(jié)目關(guān)聯(lián)表)、sdt表(服務(wù)描述表)、nit表(網(wǎng)絡(luò)信息表)三個(gè)數(shù)據(jù)表。
s20:在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若全局使能標(biāo)記置為1則子線程開始過(guò)濾數(shù)據(jù)表的pid,過(guò)濾到一次則記錄一次。
由于對(duì)于每個(gè)數(shù)據(jù)表都要過(guò)濾多次,且過(guò)濾到的次數(shù)滿足要求該數(shù)據(jù)表測(cè)試才算通過(guò),為避免測(cè)試結(jié)果不可靠的問(wèn)題,該步驟中在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),這樣就將每個(gè)數(shù)據(jù)表過(guò)濾到pid的次數(shù)記錄下來(lái)進(jìn)行準(zhǔn)確的判斷。
s30:主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò)。
在子線程開始過(guò)濾數(shù)據(jù)表pid后,為節(jié)省測(cè)試時(shí)間,主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),實(shí)時(shí)掌握pid的過(guò)濾情況。在子線程過(guò)濾過(guò)程中,若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò)。
進(jìn)一步的,設(shè)定循環(huán)周期小于主線程固定時(shí)長(zhǎng)除以所有數(shù)據(jù)表pid需要過(guò)濾的總次數(shù)。
設(shè)定范圍為不低于需要次數(shù)的95%。
s40:若主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試并且demux壓力測(cè)試通過(guò)。
在主線程檢測(cè)過(guò)程中,若檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試都滿足要求,則對(duì)demux壓力測(cè)試通過(guò),主線程將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試。這樣就在所有數(shù)據(jù)表壓力測(cè)試都滿足要求后就完成測(cè)試,無(wú)需等待固定時(shí)長(zhǎng)結(jié)束后再完成測(cè)試。
該機(jī)頂盒解復(fù)用器壓力測(cè)試方法,在主線程定義全局使能標(biāo)記,設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),在子線程定義一組全局?jǐn)?shù)組變量標(biāo)記記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò),主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),在主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0則demux壓力測(cè)試通過(guò),結(jié)束測(cè)試,這樣就能在測(cè)試通過(guò)后結(jié)束測(cè)試,不需要等待固定時(shí)長(zhǎng),并且檢測(cè)結(jié)果準(zhǔn)確,可信度高,極大滿足測(cè)試要求。
同時(shí),本發(fā)明還提供一種機(jī)頂盒解復(fù)用器壓力測(cè)試系統(tǒng),如圖2所示,該系統(tǒng)包括:
主線程設(shè)置模塊100,在主線程中定義一個(gè)全局使能標(biāo)記,并設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),開始測(cè)試時(shí)全局使能標(biāo)記置為1。
為使得主線程能夠?qū)毫y(cè)試進(jìn)行控制,該實(shí)施例中主線程設(shè)置模塊100在主線程中定義一個(gè)全局使能標(biāo)記用來(lái)控制壓力測(cè)試的開始和結(jié)束,全局使能標(biāo)記置為1則測(cè)試開始,全局使能標(biāo)記置為0則測(cè)試結(jié)束。然后主線程設(shè)置模塊100設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),設(shè)置好后全局使能標(biāo)記置為1開始測(cè)試。
進(jìn)一步的,為方便測(cè)試,主線程設(shè)置模塊100設(shè)置需要過(guò)濾的數(shù)據(jù)表為pat表(節(jié)目關(guān)聯(lián)表)、sdt表(服務(wù)描述表)、nit表(網(wǎng)絡(luò)信息表)三個(gè)數(shù)據(jù)表。
子線程設(shè)置模塊200,在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若全局使能標(biāo)記置為1則子線程開始過(guò)濾數(shù)據(jù)表的pid,過(guò)濾到一次則記錄一次。
由于對(duì)于每個(gè)數(shù)據(jù)表都要過(guò)濾多次,且過(guò)濾到的次數(shù)滿足要求該數(shù)據(jù)表測(cè)試才算通過(guò),為避免測(cè)試結(jié)果不可靠的問(wèn)題,子線程設(shè)置模塊200在子線程中定義一組全局?jǐn)?shù)組變量標(biāo)記,全局?jǐn)?shù)組變量標(biāo)記用來(lái)記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),這樣就將每個(gè)數(shù)據(jù)表過(guò)濾到pid的次數(shù)記錄下來(lái)進(jìn)行準(zhǔn)確的判斷。
pid過(guò)濾次數(shù)檢測(cè)模塊300,控制主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò)。
在子線程開始過(guò)濾數(shù)據(jù)表pid后,為節(jié)省測(cè)試時(shí)間,pid過(guò)濾次數(shù)檢測(cè)模塊300控制主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),實(shí)時(shí)掌握pid的過(guò)濾情況。在子線程過(guò)濾過(guò)程中,若每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò)。
進(jìn)一步的,設(shè)定循環(huán)周期小于主線程固定時(shí)長(zhǎng)除以所有數(shù)據(jù)表pid需要過(guò)濾的總次數(shù)。
設(shè)定范圍為不低于需要次數(shù)的95%。
測(cè)試結(jié)束模塊400,若主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試并且demux壓力測(cè)試通過(guò)。
在主線程檢測(cè)過(guò)程中,若檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試都滿足要求,則對(duì)demux壓力測(cè)試通過(guò),測(cè)試結(jié)束模塊400控制主線程將全局使能標(biāo)記立即由1置為0,結(jié)束測(cè)試。這樣就在所有數(shù)據(jù)表壓力測(cè)試都滿足要求后就完成測(cè)試,無(wú)需等待固定時(shí)長(zhǎng)結(jié)束后再完成測(cè)試。
該機(jī)頂盒解復(fù)用器壓力測(cè)試系統(tǒng),主線程設(shè)置模塊100在主線程定義全局使能標(biāo)記,設(shè)置需要過(guò)濾的數(shù)據(jù)表、每個(gè)數(shù)據(jù)表的pid以及每個(gè)過(guò)濾表pid需要過(guò)濾的次數(shù),子線程設(shè)置模塊200在子線程定義一組全局?jǐn)?shù)組變量標(biāo)記記錄每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù)與需要過(guò)濾的次數(shù)相比滿足設(shè)定范圍,則該數(shù)據(jù)表壓力測(cè)試通過(guò),pid過(guò)濾次數(shù)檢測(cè)模塊300控制主線程按照設(shè)定循環(huán)周期檢測(cè)子線程中每個(gè)數(shù)據(jù)表pid被過(guò)濾到的次數(shù),測(cè)試結(jié)束模塊400在主線程檢測(cè)到所有數(shù)據(jù)表壓力測(cè)試通過(guò)則將全局使能標(biāo)記立即由1置為0則demux壓力測(cè)試通過(guò),結(jié)束測(cè)試,這樣就能在測(cè)試通過(guò)后結(jié)束測(cè)試,不需要等待固定時(shí)長(zhǎng),并且檢測(cè)結(jié)果準(zhǔn)確,可信度高,極大滿足測(cè)試要求。
以上僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。