專利名稱:用于測試應用程序的裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于測試應用程序的裝置及其方法。在為建立、開發(fā)和測試為交互電視系統(tǒng)的應用程序中使用的寫作工具中有特別的應用。
數(shù)字電視系統(tǒng)以數(shù)字而不是模擬形式給觀眾傳輸電視頻道。數(shù)字頻道在發(fā)射機端編碼為數(shù)字數(shù)據(jù)流,而在接收機端使用數(shù)字解碼器解碼,數(shù)字解碼器可以在數(shù)字機頂盒(DSTB)中或在集成的數(shù)字電視中。為允許交互性,可以通過和與提供電視頻道相同的介質(zhì)或者通過不同的介質(zhì)例如電話連接提供一個上行鏈路。作為這里使用的術(shù)語“數(shù)字電視系統(tǒng)”例如包括任何衛(wèi)星、陸地、電纜和其它系統(tǒng)。
數(shù)字解碼器通常包含一個處理器,其上可以運行稱為應用程序的程序。應用程序的例子包括節(jié)目指南、遠程購物、問答比賽、家庭銀行和遠程投票。這種應用程序通常在電視屏幕上顯示一個菜單,用戶可以從其中選擇一個特別的選項。選擇的結(jié)果可以通過上行鏈路傳輸以允許采取適當?shù)男袆印?br>
應用程序可以與各種硬件諸如智能卡讀卡機、圖形卡、紅外遙控電路、鍵盤、輸入/輸出端口或調(diào)制解調(diào)器相互反應,它們也可以從傳輸電視信號的介質(zhì)接收數(shù)據(jù)。為提供應用程序和硬件之間的接口,提供稱為設(shè)備的軟件模塊。這種設(shè)備包含為管理外部事件和物理接口必需的邏輯資源。在本發(fā)明的說明中詞“設(shè)備”用于指示這種軟件模塊。
隨著提供給用戶的服務(wù)數(shù)目的迅速增加,需要一種寫作工具,它可以允許設(shè)計、建立、診斷和測試應用程序。
已知的寫作工具通常允許在工作站上開發(fā)應用程序,例如WindowsNT或UNIX工作站。當應用程序為進行測試準備好時,它被整體下載到一個數(shù)字解碼器,諸如一個DSTB。然后可以使用該數(shù)字解碼器測試應用程序的性能。這一測試過程可能十分笨拙。
根據(jù)本發(fā)明,提供一種為接收機/解碼器測試應用程序的裝置,它包括為模擬接收機/解碼器的功能的設(shè)備。
本發(fā)明提供的優(yōu)點是,不必提供接收機/解碼器和相關(guān)硬件來測試應用程序。本發(fā)明另外提供的優(yōu)點是,應用程序的開發(fā)者可以看見在該應用程序中的任何改變的結(jié)果而不用下載該應用程序到接收機/解碼器。
這里使用的術(shù)語“接收機/解碼器”可以意味著一個用于接收解碼或未解碼信號的接收機,例如電視和/或無線電信號,這些信號可以由某些其它設(shè)備廣播或傳輸。該術(shù)語還可以意味著一個用于解碼接收到的信號的解碼器。這種接收機/解碼器的實現(xiàn)可以包括一個與接收機集成在一起的解碼器,用于解碼接收到的信號,例如“機頂盒”,這種解碼器與物理上分離的接收器結(jié)合作用,或者這種解碼器包括另外的功能,諸如萬維網(wǎng)瀏覽器、視頻記錄器、或電視。
模擬接收機/解碼器的功能的設(shè)備可以例如是編程接收機/解碼器功能的處理器。
可以使該裝置適用于運行應用程序,它可以使應用程序開發(fā)者看到如果該應用程序運行在實際的接收機/解碼器上該應用程序?qū)⑷绾伪憩F(xiàn)。優(yōu)選,使該裝置適用于在一個第一進程中運行應用程序和在一個第二進程中模擬接收機/解碼器的功能。這可以允許在一個實際的接收機/解碼器中發(fā)生的異步事件在第二進程中被模擬,而同時該應用程序在第一進程中正在運行。第一和第二進程可以是彼此獨立的,和可以運行在同一處理器上。該裝置可以另外包括一個分區(qū)的存儲器,用于允許在第一進程和第二進程之間傳送數(shù)據(jù)。
可以使該裝置適用于在第一線程內(nèi)運行應用程序,和在第二線程內(nèi)模擬接收機/解碼器的功能。第一和第二線程可以形成一個單一進程的部分。
該裝置可以另外包括一個分區(qū)的存儲器,用于允許在第一和第二線程之間傳送數(shù)據(jù)。
接收機/解碼器的功能至少部分可以用軟件模擬,使得不一定提供在接收機/解碼器內(nèi)產(chǎn)生該功能的硬件。然而,在該裝置具有相應于接收機/解碼器上的硬件的硬件可用的地方,可以使用該硬件來模擬接收機/解碼器的功能,因此可以使用相應于在接收機/解碼器中的硬件的硬件來模擬接收機/解碼器的功能。
該裝置可以包括存儲設(shè)備(諸如存儲器,例如計算機存儲器或計算機可讀介質(zhì),諸如硬磁盤),用于存儲包含表示由在接收機/解碼器中的硬件項產(chǎn)生的數(shù)據(jù)的數(shù)據(jù)的文件。這可以允許模擬該項硬件的功能。還可以使該裝置適用于產(chǎn)生模擬接收機/解碼器輸出的輸出,例如在屏幕上顯示。這可以允許應用程序開發(fā)者在屏幕上看到該應用程序的輸出,就像它出現(xiàn)在電視屏幕上一樣。還可以使該裝置另外適用于接收作為表示由接收機/解碼器接收到的數(shù)據(jù)的輸入數(shù)據(jù),例如從一項硬件。這樣一項硬件可以在屏幕窗口內(nèi)表示。例如,在遙控單元的場合,該遙控單元的表示可以在屏幕窗口內(nèi)顯示,用戶可以與該遙控單元交互反應以便測試應用程序。這樣,可以使該裝置適用于產(chǎn)生一個為在屏幕上顯示的輸出,它表示接收機/解碼器可以與之交互反應的一項硬件。
本發(fā)明還提供為編輯和測試一個應用程序的裝置,包括為編輯該應用程序的編輯器和為如上所述測試該應用程序的裝置。應該理解,術(shù)語“編輯器”包括為設(shè)計、建立或改變應用程序的程序或其它工具。以這一方式,可以在同一裝置例如一個工作站上提供用于編輯應用程序的編輯器和用于模擬接收機/解碼器的行為的模擬器以便測試該應用程序。
可以使編輯器適用于產(chǎn)生一個為在屏幕上顯示的輸出,同時使為模擬接收機/解碼器的功能的設(shè)備適用于產(chǎn)生為在同一屏幕上顯示的輸出。這可以允許應用程序開發(fā)者在用于編輯應用程序的同一屏幕上看見該應用程序的輸出。處理器可以包括為運行編輯器和為模擬接收機/解碼器功能的設(shè)備兩者的處理器??梢允鼓M接收機/解碼器的功能的設(shè)備適用于運行由編輯器已經(jīng)編輯的應用程序。
采取上述任何形式的裝置可以是這樣的,使得接收機/解碼器的功能至少是例如從遙控器、鍵盤或諸如調(diào)制解調(diào)器的通信設(shè)備接收和處理輸入數(shù)據(jù)、解碼視頻數(shù)據(jù)、產(chǎn)生視頻輸出、調(diào)諧到廣播信號、與智能卡通信之一,和優(yōu)選是至少下述設(shè)備之一的一種功能遙控器(REMOTECONTROL),串口(SERIAL),并口(PARALLEL),總線1394(BUS1394),調(diào)制解調(diào)器(MODEM),網(wǎng)絡(luò)(NETWORK),堆棧(STACK),時鐘(CLOCK),鍵盤(KEYBOARD),指針(POINTER),圖形設(shè)備(GRAPHIC),圖像設(shè)備(PICTURE),音頻設(shè)備(AUDIO),視頻設(shè)備(VIDEO),服務(wù)設(shè)備(SERVICE),顯示器(DISPLAY),SCTV,SCVCR,SCAUX,電源(POWER),備份設(shè)備(BACKUP),MLOAD,調(diào)諧器(TUNER),和智能卡(SMARTCARD)。
本發(fā)明還提供一個工作站,它包括一個用于編輯應用程序的編輯器,一個用于模擬接收機/解碼器的功能的模擬器,和一個為顯示編輯器的輸出和模擬器的輸出的顯示器。
可以使工作站的模擬器適用于運行已經(jīng)由編輯器編輯的應用程序??梢栽陲@示器的窗口內(nèi)顯示模擬器的輸出。可以在顯示器的窗口內(nèi)模擬為給應用程序輸入數(shù)據(jù)的輸入設(shè)備。
在本發(fā)明的方法方面,提供一種為接收機/解碼器測試應用程序的方法,包括模擬接收機/解碼器的功能。
該方法可以另外包括運行應用程序的步驟??梢栽诘谝贿M程中運行應用程序,在第二進程中模擬接收機/解碼器的功能。第一和第二進程可以彼此獨立。第一和第二進程也可以在同一處理器上運行??梢允褂梅謪^(qū)存儲器在第一進程和第二進程之間傳送數(shù)據(jù)。
在該方法中,可以至少部分以軟件模擬接收機/解碼器的功能??梢允褂孟鄳谠诮邮諜C/解碼器中的硬件的硬件模擬接收機/解碼器的功能。
前述方法還可以包括使用模擬文件表示由在接收機/解碼器中的一項硬件產(chǎn)生的數(shù)據(jù)的步驟。
前述方法還可以包括產(chǎn)生為在屏幕上顯示模擬接收機/解碼器的輸出的一個輸出的步驟。
前述方法還可以包括接收作為表示應該由接收機/解碼器接收的數(shù)據(jù)的輸入數(shù)據(jù)的步驟。
在本發(fā)明的方法方面,可以提供一種編輯和測試應用程序的方法,包括編輯應用程序和進一步包括任何上述測試應用程序的方法。
編輯方法可以產(chǎn)生為在屏幕上顯示的輸出,測試方法可以產(chǎn)生為在同一屏幕上顯示的輸出。編輯方法和測試方法可以在同一處理器上運行。測試方法可以測試已經(jīng)由編輯方法編輯的應用程序。
本發(fā)明還提供一種計算機可讀介質(zhì),其上存儲有為執(zhí)行任何上述方法的程序,以及包括為執(zhí)行任何上述方法的計算機程序產(chǎn)品。
本發(fā)明還提供一種基本如參考
的和在其中表示的方法和設(shè)備。
一個方面的特征可以應用于另一方面,相似地,方法特征可以應用于裝置方面,反之亦然。
現(xiàn)在參考附圖純粹以舉例方式說明本發(fā)明的優(yōu)選特征,附圖中圖1表示一個典型的數(shù)字電視系統(tǒng)的結(jié)構(gòu);圖2表示圖1的數(shù)字電視系統(tǒng)的交互反應系統(tǒng)的結(jié)構(gòu);圖3是圖1系統(tǒng)的接收機/解碼器的結(jié)構(gòu)的原理示意圖;圖4是接收機/解碼器的分層結(jié)構(gòu)的功能方框圖;圖5表示為運行應用程序?qū)懽鞴ぞ叩墓ぷ髡?;圖6表示寫作工具的主要元素;圖7表示按照本發(fā)明的一個實施例的模擬器的主要模塊;圖8和9是模擬器操作的原理表示;圖10是模擬器的操作的第二例子的表示;圖11表示如何由接收機/解碼器產(chǎn)生一個為輸出的圖像的例子;圖12和13表示在一個模擬的接收機/解碼器上運行的應用程序的例子。
圖1表示數(shù)字電視系統(tǒng)1的一個概述。本發(fā)明主要包括一個常規(guī)的數(shù)字電視系統(tǒng)2,它使用公知的MPEG-2壓縮系統(tǒng)傳輸壓縮的數(shù)字信號。更詳細地說,在廣播中心的MPEG-2壓縮器3接收數(shù)字信號流(有代表性的是視頻信號流)。壓縮器3由鏈接5與多路復用器和加密器4連接。
多路復用器4接收多個另外的輸入信號,組合傳送流和通過鏈路7傳輸壓縮的數(shù)據(jù)信號給廣播中心的發(fā)射機6,鏈路當然可以使用包括遠程通信鏈路的多種形式。發(fā)射機6發(fā)出電磁波信號,通過衛(wèi)星上行鏈路8傳送到衛(wèi)星轉(zhuǎn)發(fā)器9,在那里信號被電子處理,經(jīng)過空間的衛(wèi)星下行鏈路10發(fā)送到地面的接收機12,常規(guī)上為由最終用戶擁有或租用的碟形天線。為傳輸數(shù)據(jù)的其它傳輸通道當然是可能的,諸如地面廣播、電纜傳輸、組合衛(wèi)星/電纜鏈路、電話網(wǎng)絡(luò)等。
由接收機12接收的信號傳送給一個由最終用戶擁有或租用的集成的接收機/解碼器13,接收機/解碼器13與最終用戶的電視機14連接。接收機/解碼器13把壓縮的MPEG-2信號解碼成電視信號,傳送給電視機14。雖然在圖1中表示的是單獨的接收機/解碼器,但是接收機/解碼器也可以是集成的數(shù)字電視的一部分。如在這里使用的,術(shù)語“接收機/解碼器”包括單獨的接收機/解碼器,諸如機頂盒,和具有集成在其內(nèi)的接收機/解碼器的電視機。
在一個多信道系統(tǒng)中,多路復用器4處理從一些并行信源接收的音頻和視頻信息,與發(fā)射機6反應來沿著相應數(shù)目的信道廣播信息。除了音頻視頻信息,電報或應用程序或任何其它類型的數(shù)字數(shù)據(jù)都可以引入這些信道中的一些或全部,與傳送的數(shù)字音頻和視頻信息交織在一起。
一個條件訪問系統(tǒng)15與多路復用器4和接收機/解碼器13連接,它的一部分位于廣播中心,一部分位于解碼器中。它能夠使最終用戶從一個或多個廣播供應商訪問數(shù)字電視廣播。一張智能卡能夠插入接收機/解碼器13,它能夠解讀涉及商品提供的消息(亦即,通過廣播供應商出售的一個或幾個電視節(jié)目)。用解碼器13和智能卡,最終用戶可以采取預訂方式或根據(jù)觀看付費的方式購買提供的商品。
如上所述,由系統(tǒng)傳輸?shù)墓?jié)目在多路復用器4被加密編碼,應用于一個給定傳輸?shù)臈l件和加密密鑰由訪問控制系統(tǒng)15確定。用這種方法傳輸加密編碼數(shù)據(jù)是付費電視系統(tǒng)領(lǐng)域所公知的。通常,加密編碼數(shù)據(jù)與一個為解碼該數(shù)據(jù)的控制字一起傳送,控制字本身由所謂的運行密鑰加密,用加密形式傳輸。
加密編碼數(shù)據(jù)和加密控制字然后由解碼器13接收,解碼器13已經(jīng)訪問存儲在插入解碼器的智能卡中的相同的運行密鑰,來對加密的控制字解密,其后解密傳送的數(shù)據(jù)。已付貨的用戶將例如在每月一次的廣播EMM(權(quán)限管理消息)中接收為解密加密的控制字必需的運行密鑰,以便許可觀看傳送的信號。
一個交互式系統(tǒng)16,也與多路復用器4和接收機/解碼器13連接,也是一部分位于廣播中心,一部分位于編碼器,能夠使最終用戶通過一個調(diào)制解調(diào)的回送通道17與多種應用程序相互作用。調(diào)制解調(diào)的回送通道也可以用來與條件訪問系統(tǒng)15通信。交互式系統(tǒng)可以例如用于能夠使收看者立即與傳送中心通信,要求授權(quán)觀看特定的節(jié)目,下載應用程序等。
附圖2表示本發(fā)明的數(shù)字電視系統(tǒng)1的交互電視系統(tǒng)16的一般結(jié)構(gòu)。
例如,交互系統(tǒng)16允許最終用戶從屏幕目錄購買商品,按需閱讀本地新聞和氣象圖和通過他們的電視機玩游戲。
交互系統(tǒng)4000概括包括4個主要元件
●位于廣播中心或某處的寫作工具4004,用于允許廣播提供商建立、開發(fā)、診斷和測試應用程序;●位于廣播中心、連接到寫作工具4004的應用程序和數(shù)據(jù)服務(wù)器4006,用于允許廣播提供商準備、驗證和格式化應用程序和數(shù)據(jù),為交付給多路復用器和加密器4插入到MPEG-2傳輸流中(通常其專用部分),以便給最終用戶廣播;●包括一個運行時間引擎(RTE)4008的虛擬機,它是一個安裝在由最終用戶擁有或租用的接收機/解碼器13內(nèi)的可執(zhí)行代碼,用于允許最終用戶接收、驗證、和加載應用程序到解碼器13的工作存儲器中以便執(zhí)行。引擎4008還運行常駐的通用應用程序。引擎4008獨立于硬件和操作系統(tǒng);●在接收機/解碼器13和應用程序和數(shù)據(jù)服務(wù)器4006之間的調(diào)制解調(diào)的回送通道17允許信號在最終用戶請求時指示服務(wù)器4006插入數(shù)據(jù)和應用程序到MPEG-2傳輸流中。
交互電視系統(tǒng)使用“應用程序”操作,這些應用程序控制其內(nèi)包括的接收機/解碼器和各種設(shè)備的功能。應用程序在引擎4008中作為“資源”文件表示?!澳K”是一組資源文件和數(shù)據(jù)。接收機/解碼器的“存儲器體積”是為模塊的存儲空間。模塊可以從MPEG-2傳輸流下載到接收機/解碼器13。
參考圖3,現(xiàn)在說明接收機/解碼器13或機頂盒的元件。在該圖中表示的元件將根據(jù)功能塊說明。
解碼器13包括一個中央處理器20,它包括相關(guān)的存儲器元件并適用于從串行接口21、并行接口22、調(diào)制解調(diào)器23(連接到圖1的調(diào)制解調(diào)的回送通道17)接收輸入數(shù)據(jù),和在解碼器的前面板上的開關(guān)觸點24。
另外,解碼器還適用于從一個紅外線遙控器25經(jīng)過控制單元26接收輸入信號,還有兩個智能卡讀卡機27、28,適用于分別讀銀行或訂購智能卡29、30。帶有插入的訂購卡30的訂購智能卡讀卡機28與一個條件訪問單元29接合,給多路分配器/解密器30提供必要的控制字,以允許將加密的廣播信號解密。解碼器還包括一個常規(guī)的調(diào)諧器31和解調(diào)器32,在衛(wèi)星傳送的信號由單元30濾波和多路分配之前接收和解調(diào)。
解碼器內(nèi)數(shù)據(jù)的處理一般由中央處理器20來進行。附圖4舉例說明了接收機/編碼器的中央處理器20的軟件結(jié)構(gòu)。參考附圖4,該軟件結(jié)構(gòu)包括一個運行時間引擎4008,一個設(shè)備管理器4068和多個設(shè)備4062和設(shè)備驅(qū)動器4066來運行一個或多個應用程序4056。
如在本說明中所使用的,一個應用程序是一塊用于控制優(yōu)選是接收機/編碼器13的高級功能的計算機代碼。例如,當一個最終用戶將遙控器25聚焦在從電視機14的屏幕上看到的一個按鈕目標并按下確認鍵時,與該按鈕關(guān)聯(lián)的指令序列運行。
一個交互式應用程序建議若干菜單并在最終用戶的要求下執(zhí)行命令,提供涉及該應用程序目的的數(shù)據(jù)。應用程序可以是常駐的應用程序,也就是存儲在接收機/解碼器13中的只讀存儲器(或者閃存儲器或其它非易失存儲器)中的應用程序,也可以是廣播或下載到接收機/解碼器13的隨機存取存儲器或閃存儲器中的應用程序。
應用程序存儲在接收機/解碼器13的存儲器位置中,作為資源文件出現(xiàn)。資源文件包含圖形對象描述單元文件,變量塊單元文件,指令序列文件,應用程序文件和數(shù)據(jù)文件,更詳細的描述在以上提到的專利說明書中。
接收機/解碼器包含的存儲器分成一個隨機存取存儲器部分,一個閃存儲器部分和一個只讀存儲器部分,但是這種物理結(jié)構(gòu)與邏輯結(jié)構(gòu)不同。存儲器可以進一步分成與各種接口關(guān)聯(lián)的存儲器部分。從一種觀點來看,存儲器可以認為是硬件的一部分;從另一種觀點來看,存儲器可以被認為是支持和包含表示為與硬件分開的整個系統(tǒng)。
中央處理器20可以被認為位于形成虛擬機4007的一部分的運行時間引擎4008的中心。它在一邊(“高級”的一邊)與應用程序連接,在另一邊(“低級”的一邊)經(jīng)過下面要討論的各種中間邏輯單元連接到接收機/解碼器硬件4061,包括上述各種接口(亦即,例如,串行接口21,并行接口22,調(diào)制解調(diào)器23和控制單元26)。
詳細參考圖4,各種應用程序與虛擬機4007連接;一些更一般使用的應用程序或多或少固定常駐在系統(tǒng)中,如在4057所指示的,而其它的應用程序?qū)⑾螺d到系統(tǒng)中,比如從MPEG數(shù)據(jù)流或從要求的其它端口下載。
虛擬機4007除運行時間引擎4008外還包括一些常駐的庫函數(shù)4006,庫函數(shù)4006包括一個工具箱4058。程序庫包含用C語言實現(xiàn)的多種功能,由引擎4008使用。這些包括數(shù)據(jù)操作,比如壓縮、擴展或數(shù)據(jù)結(jié)構(gòu)、線圖的比較等。程序庫4006還包括關(guān)于接收機/解碼器13中的固件的信息,比如硬件和軟件的版本號和可用隨機存取存儲器空間,以及當下載一個新的設(shè)備4062時使用的函數(shù)。函數(shù)可以下載到程序庫中,存儲在閃存儲器或隨機存取存儲器中。
運行時間引擎4008連接到設(shè)備管理器4068,設(shè)備管理器4068與一組設(shè)備4062連接,設(shè)備4062與設(shè)備驅(qū)動器4060連接,4060依次與端口或接口連接。在廣義上,一個設(shè)備驅(qū)動器可以被看作定義一個邏輯接口,以便兩個不同的設(shè)備驅(qū)動器可以連接到一個公共的物理端口。一個設(shè)備通常會與超過一個的設(shè)備驅(qū)動器相連;如果一個設(shè)備與單個設(shè)備驅(qū)動器相連,則該設(shè)備通常會被設(shè)計成結(jié)合為通信所需要的所有的功能,以便避免需要一個單獨的設(shè)備驅(qū)動器。一定的設(shè)備可以在它們自身之間通信。
如以下要說明的,有3種通信形式從設(shè)備4064上行到運行時間引擎通過變量、緩沖器和傳送到一組事件隊列的事件。
接收機/解碼器13的每一種功能作為接收機/解碼器13的軟件體系中的一個設(shè)備4062來表示。設(shè)備可以是本地的或遠程的。本地設(shè)備包括智能卡,SCART連接器信號,調(diào)制解調(diào)器,串行和并行接口,MPEG視頻和音頻播放器和MPEG部分和桌面提取器。遠程設(shè)備4066在一個遠程位置執(zhí)行,與本地設(shè)備的不同之處在于,端口和程序必須由系統(tǒng)權(quán)威或設(shè)計者定義,而不是用由接收機/解碼器的生產(chǎn)者提供和設(shè)計的設(shè)備和設(shè)備驅(qū)動器定義。
運行時間引擎4008在微處理器和一個公共應用程序編程接口的控制下運行。它們安裝在每一臺接收機/解碼器13中,以便所有的接收機/解碼器13從應用程序的觀點來看都是一樣的。
引擎4008在接收機/解碼器13上運行應用程序4056。它執(zhí)行交互應用程序4056,從接收機/解碼器13外部接收事件,顯示圖形和文字,調(diào)用設(shè)備服務(wù)和使用為特定計算而連接到引擎4008上的程序庫4006的功能。
運行時間引擎4008是安裝在每一接收機/解碼器13上的可執(zhí)行代碼,包括一個解釋程序來解釋和運行應用程序。引擎4008能適用于任何操作系統(tǒng),包括單任務(wù)操作系統(tǒng)(比如MS-DOS)。引擎4008基于處理定序器單元(它采取各種事件,比如按鍵,來執(zhí)行各種動作),包括它本身的調(diào)度程序來管理從不同的硬件接口傳來的事件隊列。它還處理圖形和文本的顯示。一個處理定序器單元包括一系列動作組。每一事件引起處理定序器單元根據(jù)該事件的特征從它當前的動作組移動到另一個動作組,和執(zhí)行新動作組的動作。
引擎4008包括一個代碼加載程序來加載和下載應用程序4056到接收機/解碼器的存儲器中。為了保證最佳的使用,只有必要的代碼才加載到隨機存取存儲器或閃存儲器中。下載的數(shù)據(jù)用驗證機構(gòu)驗證,以防止一個應用程序4056的任何修改或者執(zhí)行任何未授權(quán)的應用程序。引擎4008進一步包括一個解壓縮器。因為應用程序代碼(一種中間代碼形式)為了節(jié)省空間和加快從MPEG流或經(jīng)過一個內(nèi)置的接收機/解碼器方式下載而被壓縮,因此代碼必須在加載到隨機存取存儲器中之前被解壓縮。引擎4008還包括一個解釋程序來解釋應用程序代碼,以更新各種變量值和確定狀態(tài)的改變,以及一個錯誤檢驗器。
在使用任何設(shè)備4026的服務(wù)之前,一個程序(比如一個應用程序指令序列)必須作為“客戶程序”被申明,也就是說,到設(shè)備4062或設(shè)備管理器4068的一個邏輯訪問通路。管理器給客戶程序一個客戶程序號,它在該設(shè)備的所有訪問中都被引用。設(shè)備4062可以有幾個客戶程序,對每個設(shè)備4062的客戶程序號依靠設(shè)備4062的類型來確定。一個客戶程序由一個過程“設(shè)備打開頻道”引入到設(shè)備4062。這一過程給客戶程序分配一個程序號。一個客戶程序可以通過過程“設(shè)備關(guān)閉頻道”從設(shè)備管理器4068客戶程序表中取出。
對由設(shè)備管理器4068提供的設(shè)備4062的訪問可以是同步的或異步的。對同步訪問,使用過程“設(shè)備調(diào)用”。這是一種訪問立即可用的數(shù)據(jù)或不引起等候希望的響應的功能的手段。對異步訪問,使用過程“設(shè)備輸入/輸出”。這是一種訪問引起等待響應的數(shù)據(jù)的手段,例如掃描調(diào)諧器頻率以找到一個多路復用器或從MPEG流獲得返回的表。當要求的結(jié)果可用時,一個事件就輸入到引擎的隊列中表示它到達。一個進一步的過程“設(shè)備事件”提供管理不可預料的事件的一種方法。
運行時間引擎的主回路連接到各種處理定序器單元,并當該主回路碰到適當?shù)氖录r控制臨時轉(zhuǎn)移到一個處理定序器單元。
如上所述,提供寫作工具4004以允許設(shè)計、建立、測試和診斷應用程序。寫作工具運行在工作站(WS)上,諸如運行在Windows NT,Windows95或Windows98上的個人計算機(PC),或UNIX機器,或運行任何其它操作系統(tǒng)的工作站,并用于建立和編輯形成該應用程序的資源文件和數(shù)據(jù)文件。參考圖5,工作站200包括屏幕210、計算機212、鍵盤214和鼠標216。計算機212包括處理器218、存儲器220、硬盤222、輸入/輸出(I/O)端口224、以及其它在這種計算機中常規(guī)的硬件和軟件。
圖6表示出運行在工作站200上的一個寫作工具4004的概述。寫作工具4004包括一個編輯器410,用于建立和編輯形成應用程序的各種文件,程序庫412,用于存儲由編輯器410使用的現(xiàn)有文件,編譯器414,用于編譯由編輯器410產(chǎn)生的文件為可以由虛擬機例如圖4所示虛擬機4007理解的中間語言,和模擬器100,用于模擬接收機/解碼器的行為以便測試和診斷應用程序,其在下面說明。
應用程序包含資源文件,資源文件包含為一個虛擬機用中間語言寫的指令,和可選的數(shù)據(jù)文件,數(shù)據(jù)文件包含要由該應用程序使用的數(shù)據(jù)。一個應用程序可以包括下述類型的資源文件中的一個或多個●模塊文件-定義應用程序的入口點●面板文件-定義屏幕●類文件-定義由應用程序使用的數(shù)據(jù)結(jié)構(gòu)●腳本文件-定義應用程序的行為●數(shù)據(jù)文件的例子如下●圖標庫文件-這些包含每象素4位的位圖的集合直到最大尺寸80×64象素。這些圖標可以由面板作為按鈕或作為裝飾使用。
●圖像-這些文件包含任何尺寸的單一位圖,每象素4位,給出16種顏色。這一類型的圖像通常用作面板的背景。
●顏色表-這些用來定義可以在屏幕上顯示模塊的顏色。
●用戶數(shù)據(jù)文件-這些文件由用戶為由應用程序使用而定義。它們是ASCII文本文件或二進制文件。
在使用中,應用程序開發(fā)者使用存儲在程序庫412中的現(xiàn)有文件和使用編輯器410來產(chǎn)生為他的應用程序定制的文件。正被編輯的文件在工作站屏幕210上顯示并使用鍵盤214和鼠標216輸入改變。可以以各種方式顯示文件,例如,圖形文件可以作為圖形在屏幕上顯示,而對資源文件,可以顯示文件中的代碼,或可以顯示代碼的總結(jié)構(gòu)或結(jié)構(gòu)。
一旦已經(jīng)建立一個應用程序,則使用編譯器414將其轉(zhuǎn)變?yōu)榭捎商摂M機理解的中間語言。
為測試應用程序,提供帶有模擬器100的工作站,模擬器100模擬接收機/解碼器的行為,以便可以在工作站200上測試該應用程序而不需被下載到實際的接收機/解碼器。這允許應用程序被立即測試,并避免需要提供接收機/解碼器和相關(guān)硬件。
參考圖7,模擬器100的主模塊是模擬的虛擬機101,模擬的設(shè)備管理器102,模擬的WS設(shè)備模塊104、106,模擬的非WS設(shè)備模塊108、110,模擬的圖形庫112,模擬的跟蹤端口114(其用于輸出跟蹤消息,其可以用于例如診斷),模擬的遙控模塊116(其模擬工作站屏幕上的遙控單元),模擬的TV窗口118(它通過在工作站屏幕上顯示圖像模擬電視),模擬的跟蹤觀看者120(它也在工作站屏幕上顯示跟蹤消息),WS資源122(它們是屬于工作站的硬件,它們也在數(shù)字解碼器中找到),和模擬文件124、126(它們包含模擬未在工作站中找到的硬件的行為)。應用程序腳本128是希望測試的應用程序代碼。
模擬的虛擬機101加載并運行應用程序代碼128。它變換應用程序中間語言的指令為可以由模擬的設(shè)備管理器102和/或WS理解的本地指令。
模擬的設(shè)備管理器102保證為應用程序?qū)Σ煌庠O(shè)的一致的訪問方式。它為應用程序提供向或從各種模擬的外設(shè)同步和異步傳輸和接收數(shù)據(jù)的方法。設(shè)備管理器102以提供給虛擬機101的程序庫的形式實現(xiàn)。它包含接口模塊,存儲器控制模塊,和系統(tǒng)模塊,該系統(tǒng)模塊允許(例如在進程間)為給設(shè)備發(fā)送命令和數(shù)據(jù)通信,和為同步接收由一個設(shè)備發(fā)送的數(shù)據(jù)通信。
設(shè)備模塊104-110模擬接收機/解碼器中的設(shè)備的行為。在WS設(shè)備模塊104、106的場合,由該設(shè)備管理的硬件在實際接收機/解碼器中和在工作站中都存在。這種設(shè)備的例子是時鐘、串行端口、并行端口、調(diào)制解調(diào)器等。因為硬件在工作站上存在,因此可以使用實際的工作站硬件而不是模擬一件硬件的行為。不訪問任何硬件的設(shè)備也歸于這一類。非WS設(shè)備108、110模擬不在工作站上存在的硬件的設(shè)備。這種設(shè)備的例子是調(diào)諧器、多路分配器(demux)、智能卡讀卡機,閃存儲器等。因為相應的硬件在工作站上不存在,因此還必須模擬這些硬件的行為。實現(xiàn)該模擬的方式依賴于設(shè)備的行為;一般說,使用在特定文件例如模擬文件124、126中存儲的數(shù)據(jù)實現(xiàn)。
現(xiàn)在參考一個UNIX工作站說明特定的模擬例子,雖然可以理解,可以使用其它類型的環(huán)境,諸如Windows NT,Windows95,Windows98,Windows2000,Solaris,LINUX,BeOS,NextStep等。
參考圖8,模擬的設(shè)備管理器102包括設(shè)備管理器模塊150,它提供與形式為程序庫的模擬的虛擬機的接口,存儲器控制模塊152,它控制動態(tài)存儲器資源,和進程間通信(IPC)模塊154,用于給設(shè)備傳輸命令和數(shù)據(jù)并同步接收由一個設(shè)備發(fā)射的數(shù)據(jù)。為這些數(shù)據(jù)交換必需的存儲器空間的本地化由分區(qū)的存儲器156提供,其由模擬的設(shè)備管理器102配置到特別的區(qū)域。存儲器的一部分可以由設(shè)備管理器102為動態(tài)分配和釋放存儲器空間配置。
分區(qū)存儲器156的作用是表示一個數(shù)字解碼器的實際存儲器空間以及允許在UNIX環(huán)境中的進程之間交換信息。存儲器被分為4個主要區(qū)域●由設(shè)備管理器為控制存儲器使用的GMP(分區(qū)的存儲器控制)區(qū)域158●由模擬器產(chǎn)生的公共區(qū)域160●獨立于設(shè)備管理器動態(tài)產(chǎn)生的虛擬機管理的區(qū)域162●也是由虛擬機產(chǎn)生的其內(nèi)分配專用分區(qū)的靜態(tài)區(qū)域158存儲器分成緩沖器,緩沖器的分配、釋放和封鎖在模擬器的控制下。
參考圖8,說明模擬器操作的第一個例子。建立運行VM線程170、設(shè)備管理器模塊150、存儲器控制模塊和進程間通信模塊154的主線程。與模擬的設(shè)備180、182、184的對話通過UNIX套接字186和188以非連接方式發(fā)生。如上面所指出,與設(shè)備同步交換數(shù)據(jù)通過使用“設(shè)備調(diào)用”過程發(fā)生,而異步交換通過使用“設(shè)備I/O”過程發(fā)生。當調(diào)用“設(shè)備調(diào)用”或“設(shè)備I/O”過程時,虛擬機101給模擬的設(shè)備管理器102發(fā)送在分區(qū)的存儲器156為交換數(shù)據(jù)分配的數(shù)據(jù)緩沖器的地址。設(shè)備管理器102接管該地址的控制;如果它在該分區(qū)的存儲器之外,則設(shè)備管理器在分區(qū)的存儲器內(nèi)分配一個空間并復制必要的數(shù)據(jù)到這一空間。然后設(shè)備管理器在事件隊列中放入命令消息,以便給適當?shù)哪M的設(shè)備傳送。
模擬的設(shè)備180、182、184在完全獨立于模擬的虛擬機100的進程中運行。一個設(shè)備進程在第一次打開該設(shè)備時開始,在關(guān)閉最后的客戶程序時結(jié)束。虛擬機給一個設(shè)備傳送數(shù)據(jù)或者通過使用該設(shè)備的專用存儲器空間或者通過分區(qū)的存儲器。設(shè)備可以給虛擬機傳送數(shù)據(jù)只能通過由設(shè)備管理器分配的存儲器。所有接收到的命令消息,或設(shè)備對它的響應,以及異步事件,使用兩個套接字。套接字186專用于與虛擬機的同步通信,而套接字188專用于設(shè)備的異步響應。
模擬的設(shè)備180、182、184包括過程庫,它允許這些設(shè)備被考慮為一個命令組,每一個與一個過程相關(guān)。設(shè)備解碼接收到的命令消息并調(diào)用相關(guān)的過程。這些過程要么訪問工作站中等同于在實際DSTB中的硬件的硬件,或者包含模擬一個實際的DSTB的操作的數(shù)據(jù)的模擬文件。來自硬件的響應,或在一個模擬文件中的數(shù)據(jù),然后通過分區(qū)的存儲器回送到虛擬機。
為模擬異步接收從一個設(shè)備來的事件,在主線程中建立一個異步接收線程(線程IO)172。該線程的作用是接收已經(jīng)由各種模擬的設(shè)備響應一個命令發(fā)送的事件和數(shù)據(jù)。接收到的事件以其到達順序保存在一個表中,然后在由虛擬機提供的過程的控制下發(fā)送到虛擬機101。
圖9原理表示模擬器的軟件布局。虛擬機101與設(shè)備管理器102交互反應。從設(shè)備管理器102向各種設(shè)備190-197的命令傳輸通過過程“設(shè)備調(diào)用”301、“設(shè)備I/O”302和“設(shè)備事件”306、套接字傳輸協(xié)議304、通信管理器305、多客戶管理器306和調(diào)度設(shè)備命令管理器307發(fā)生。存儲器池管理器310管理共享的存儲器312和在共享的存儲器中為配置資源313、客戶資源314、設(shè)備資源315、FIFO(先進先出)資源316和公共/專用分配器317分配空間。如上所述,共享的存儲器允許數(shù)據(jù)在主線程和設(shè)備之間傳輸。事件管理器320處理來自設(shè)備190-197的異步事件。
在另一個優(yōu)選的實施例中,設(shè)備模擬器在Windows NT環(huán)境中操作。在這一實施例中,設(shè)備作為動態(tài)連接庫實現(xiàn),而不是像在上述UNIX實施例中作為單獨的程序?qū)崿F(xiàn)。在NT環(huán)境中,沒有IPC模塊。在兩個實現(xiàn)中,一個命令管理器負責從應用程序向模擬的設(shè)備傳輸事件,一個事件管理器負責從模擬的設(shè)備向應用程序傳輸事件。
參考圖10,現(xiàn)在提供模擬器操作的第二個例子。該操作在某種方式類似于第一個例子,然而,與第一例子比較的不同在于虛擬機450和模擬的設(shè)備451和452在一個單一進程453中運行。單進程453可以例如是UNIX進程。在單進程453內(nèi),建立一個系統(tǒng)線程454,它運行虛擬機線程450連同模擬的設(shè)備管理器455和模擬的配置模塊456。
與模擬的設(shè)備451(設(shè)備X)的對話在虛擬機450中通過在458調(diào)用包含在一個第一程序庫459中的設(shè)備X功能啟動。設(shè)備X功能在460為線程457產(chǎn)生模擬設(shè)備X451的請求。以相似方式,與模擬的設(shè)備452(設(shè)備Y)的對話通過在461調(diào)用包含在一個第二程序庫462中的設(shè)備Y功能啟動。設(shè)備Y功能在463為線程464產(chǎn)生模擬設(shè)備Y452的請求。
設(shè)備功能的調(diào)用在虛擬機線程內(nèi)可以例如如下實現(xiàn)<pre listing-type="program-listing"><![CDATA[Thread_vm} ... Device_Call0 Get address of Function F of Device D Call the Function F Function F0 Run function code End of function F End of Device_Call ... }]]></pre>設(shè)備451和452的模擬產(chǎn)生為虛擬機450的事件,其在465和466中傳輸給事件管理器467。
事件管理器467是一個模塊,它允許●虛擬機在系統(tǒng)線程454內(nèi)接收由設(shè)備產(chǎn)生的事件,
●設(shè)備線程457和464為虛擬機450發(fā)射事件,●模擬管理在一個表中保存的事件的刪除。
等待由虛擬機450接入線程的事件在一個鏈接表中管理,也就是說,在該表中的每一事件包括一個指向下一事件的指針。該表的開始由一個預先定義的指針標識。
然后在468把事件遞交給虛擬機450。取決于配置,這或者可以通過事件管理器467中斷虛擬機450并登記這些事件實現(xiàn),或者通過虛擬機自身在事件管理器467內(nèi)獲得事件實現(xiàn)。
設(shè)備X和Y功能包含在庫459和462中,它們對所關(guān)心的設(shè)備分別是特定的。功能的調(diào)用借助一個功能表進行。
設(shè)備的模擬可以按照特定設(shè)備的需要定制。例如可以請求多個線程模擬一個特定的設(shè)備。在大多數(shù)場合,使用一個線程模擬一個設(shè)備,該線程作為一個背景任務(wù)處理從其它模擬的功能接收到的請求。
為說明模擬器100的操作,圖11表示在一個實際的DSTB中怎樣可以產(chǎn)生一個為在電視屏幕上顯示的圖像的例子。該圖像分為5層背景層350,視頻層352,靜止圖像層354,圖形層356,和指針層358。指針層加在圖形層上,后者加在靜止層上,等等。為允許觀看者看見所有層的混合,而不只是頂層,為每一層設(shè)計一個透明因子。當透明因子是0時該層是不透明的,當透明因子是1時該層是透明的。在大多數(shù)場合,為在該層內(nèi)的每一象素分配一個透明因子,例外是背景層(因為它后面沒有層),視頻層,對于它們,透明因子對播放視頻的區(qū)域是共用的(該層的其余部分是透明的),和指針層,對它指針是不透明的,該層的其它部分是透明的。
指針、圖形和背景層由應用程序360產(chǎn)生,而視頻和靜止圖像層從傳輸?shù)臄?shù)字信號通過MPEG解碼器362來。各層在混合器364中混合,混合器364是圖3中的圖形處理器的一部分?;旌掀饔捎布酒M成,硬件芯片執(zhí)行這5層的混合。在任何時間,應用程序可以改變?yōu)槊恳粚拥耐该饕蜃?當允許時)。為進行這一點,對于視頻層,應用程序調(diào)用一個視頻設(shè)備命令,對于靜止圖像層,應用程序調(diào)用一個圖像設(shè)備命令,對于圖形層,應用程序調(diào)用圖形庫功能?;旌系膱D像在用戶的電視機366上顯示。
為模擬圖11所示情形,用工作站上的軟件模擬代替應用程序與之反應的各種設(shè)備和相關(guān)硬件。這樣,類似地,提供一個混合各圖像層的軟件混合器。這樣混合的圖像然后在工作站的屏幕上顯示,而不是單獨的電視屏幕。以這種方式,應用程序設(shè)計者可以測試他的應用程序的操作而不需下載該應用程序到DSTB。
在模擬器100中,上述混合的功能使用一個稱為LAYERS庫的低級庫實現(xiàn)。為模擬各層的混合,不是直接在屏幕上寫,而是每一模塊調(diào)用LAYERS庫。修改屏幕內(nèi)容的每一模塊計算要改變的區(qū)域的位置、尺寸、內(nèi)容和透明因子,把這些信息提供給LAYERS庫。LAYERS庫管理分別為背景、視頻、靜止圖像、和圖形層的4個存儲器塊。每次在修改一層中的一個區(qū)域時,LAYERS庫計算產(chǎn)生的屏幕區(qū)域,考慮其它層的內(nèi)容和它們的透明因子。當顯示視頻序列時,這一工作為每一新圖像重復(每秒的圖像數(shù)取決于播放的文件)。用以混合層區(qū)域的算法于是盡可能優(yōu)化,以便得到流暢的視頻播放。
每一層借助一個象素圖管理,在該象素圖中給每一象素分配一組值。在一個例子中,對于靜止圖像和圖形層,給每一象素分配32位給每一顏色紅、綠和蘭各分配8位,給透明級分配6位,保留2位,而對背景層,使用24位。取決于要模擬的TV標準,這為PAL標準給出720×576×4=1,658,880字節(jié),對NTSC標準給出720×480×4=1,382,400字節(jié)。
因為指針層是頂層,并且對指針未應用透明因子,因此不需給指針層應用任何混合。指針形狀可以由系統(tǒng)標準機構(gòu)管理。
在模擬中,不是使用實際的MPEG解碼器,而是提供一些包含一個實際MPEG解碼器的輸出類型的數(shù)據(jù)的文件。這些文件可以通過存儲來自一個實際MPEG解碼器的數(shù)據(jù)產(chǎn)生,或者通過使用模擬文件產(chǎn)生。模擬文件是這樣的文件,它們已經(jīng)產(chǎn)生并具有一定的特征,諸如子標題。
圖12表示在一個模擬的接收器/解碼器上運行的應用程序怎樣在工作站屏幕上出現(xiàn)的例子。在所示例子中,應用程序運行一個視頻設(shè)備的測試。使用工作站屏幕上的TV窗口以它在一個實際電視屏幕上出現(xiàn)的同樣方式來顯示該應用程序的輸出。在圖12中,該TV窗口收縮到總工作站屏幕的0.75%。
在模擬器上運行的一個應用程序的另一個例子示于圖13。該例表示一個視頻層,帶有圖形層,包括一個加在視頻層上的足球員的圖像。圖形層具有一些透明的象素,使得通過足球員的頭看見視頻層。
在Windows NT和UNIX工作站上給出另外的實現(xiàn)特定設(shè)備模擬的例子。
WS設(shè)備串行串行設(shè)備允許應用程序與任何種類的設(shè)備通過一個串行鏈路通信(例如使用RS232標準)。這一設(shè)備使用UNIX/NT系統(tǒng)的標準的API模擬。它允許通過工作站的串行端口通信。
并行并行設(shè)備允許應用程序通過一個并行鏈路通信(例如使用IEEE1284標準)。這一設(shè)備使用UNIX/NT系統(tǒng)的標準的API模擬。它允許通過工作站的并行端口通信。
BUS_1394這一設(shè)備允許應用程序與任何種類的設(shè)備通過高性能串行總線使用IEC1883標準通信。該設(shè)備使用一個對1 394總線提供訪問的擴展板模擬。
UNIMODEM這一設(shè)備允許應用程序控制一個內(nèi)部的或外部的調(diào)制解調(diào)器(例如使用HAYES標準)。這一設(shè)備使用UNIX/NT系統(tǒng)的標準API實現(xiàn)。它允許通過工作站的一個實際串行端口控制一個外部的調(diào)制解調(diào)器或通過一個虛擬的串行端口(如果系統(tǒng)允許的話)控制一個內(nèi)部的調(diào)制解調(diào)器。
網(wǎng)絡(luò)這一設(shè)備允許應用程序配置和使用網(wǎng)絡(luò)堆棧。支持幾種協(xié)議TCP,UDP,IP,PPP,等。一旦配置該堆棧,則該設(shè)備給應用程序提供一個類BSD的套接字接口,允許它打開TCP連接,發(fā)送和接收UDP數(shù)據(jù)電報,連接多址通信組,等等。
該設(shè)備可以分成兩部分配置部分和通信部分。配置部分不能在UNIX/NT系統(tǒng)中實現(xiàn),因為配置只能在系統(tǒng)起動時間發(fā)生。這樣,這一部分只是模擬。當前,對配置命令的NETWORK設(shè)備響應是硬編碼的,但是它們以后可以在“配置”文件中編碼。通信部分使用UNIX/NT系統(tǒng)的API標準實現(xiàn)。它允許與使用BSD套接字的其它設(shè)備通信。
時鐘該設(shè)備允許應用程序訪問一個實時時鐘。應用程序可以獲得和設(shè)定日期和時間信息和編程喚醒警報。該設(shè)備使用UNIX/NT系統(tǒng)的標準API實現(xiàn)。
鍵盤這一設(shè)備允許應用程序配置KEYBOARD設(shè)備(如果可用的話)和接收鍵盤和遙控事件。該設(shè)備使用UNIX/NT系統(tǒng)的標準API實現(xiàn)。遙控設(shè)備使用遙控軟件模塊模擬,該模塊給KEYBOARD設(shè)備發(fā)送系統(tǒng)消息。雖然它們可能不以同樣的方式通信(對機頂盒用紅外線,對工作站用電纜),但是解碼器和工作站的KEYBOARD設(shè)備是相似的。
指針這一設(shè)備允許應用程序配置指針(鼠標)設(shè)備(如果可用的話)和接收指針事件(鼠標移動,按鈕按壓等)。該設(shè)備使用X-Windows/Windows系統(tǒng)的標準API實現(xiàn)。POINTER設(shè)備定義屏幕上指針可以采取不同形狀的區(qū)域。這些區(qū)域?qū)儆谥羔樒聊粚印?br>
圖形這一設(shè)備允許應用程序解壓縮來自不同格式的圖像,諸如JPEG,MPEG,GIF和PNG。應用程序在一組存儲器緩沖器中提供壓縮的圖像,該設(shè)備在另一組緩沖器中返回解壓縮的圖像。這些圖像可以是固定的或動畫的。一般說,圖像緩沖器來自由MLOAD設(shè)備加載的DVB部分。該設(shè)備不訪問硬件。它不需要系統(tǒng)API。
為顯示用該設(shè)備解壓縮的圖像,應用程序使用GRAPHICS庫功能。該程序庫只修改圖形屏幕層的內(nèi)容。
非WS設(shè)備圖像這一設(shè)備提供和圖形設(shè)備同樣的解壓縮服務(wù)。然而,為顯示用該設(shè)備解壓縮的圖像,應用程序使用圖像設(shè)備自身。該設(shè)備修改背景和MPEG屏幕層的內(nèi)容。
音頻這一設(shè)備允許應用程序編程機頂盒的音頻芯片。該設(shè)備能夠播放音頻流和改變音頻參數(shù)(序曲,立體聲等)。該設(shè)備使用UNIX/Windows系統(tǒng)的標準API實現(xiàn)。僅當目標系統(tǒng)允許時才可以改變系統(tǒng)音頻參數(shù)。
視頻這一設(shè)備允許應用程序編程MPEG解壓縮芯片。該設(shè)備能夠改變視頻圖像位置、尺寸、縮放,等等。因為MPEG芯片在UNIX/NT工作站中用SERVICE設(shè)備模擬,因此,只有VIDEO設(shè)備的任務(wù)通知給SERVICE設(shè)備新的視頻圖像參考。
服務(wù)這一設(shè)備通過指定它的PID(程序標識)例如視頻,音頻,子標題或智能用戶電報PID允許應用程序選擇一個給定的DVB服務(wù)(例如,TV頻道)。然后該設(shè)備指導每一PID數(shù)據(jù)流到正確的硬件芯片以便被處理(解壓縮)和播放。
服務(wù)設(shè)備在UNIX/NT工作站中如下模擬。當選擇一個服務(wù)時,該設(shè)備除視頻PID外忽略所有服務(wù)PID。它使用這一后面的PID作為對一個預先配置的存儲有磁盤文件名的表的入口。這些文件包含從給定多媒體格式來的數(shù)據(jù)。該服務(wù)要么自身讀取和播放這些數(shù)據(jù),或者使用系統(tǒng)標準API執(zhí)行該項任務(wù)。SERVICE設(shè)備使用由VIDEO設(shè)備提供的信息以決定顯示的圖像的尺寸、位置和縮放參數(shù)。
該設(shè)備修改視頻屏幕層的內(nèi)容。視頻圖像(內(nèi)容,位置,和尺寸)一個一個計算并在視頻屏幕層內(nèi)顯示每一結(jié)果圖像。
顯示器這一設(shè)備允許應用程序使用終端前的顯示器。應用程序可以請求顯示當前時間或任何專用消息。在UNIX/NT系統(tǒng)中,這一設(shè)備模擬使用TV窗口的狀態(tài)行顯示請求的消息。
SCTV,SCVCR,SCAUX這些設(shè)備允許應用程序分別檢查和配置電視機、VCR和輔助設(shè)備的SCART出口。對SCTV,SCVCR和SCAUX命令的響應可以是硬編碼的,或者它們可以在“配置”文件中編碼。
電源使用該設(shè)備把機頂盒置于備用方式和檢索電源打開的信息。該設(shè)備模擬允許應用程序停止所有設(shè)備和從UNIX/NT進程中跳出。
備份這一設(shè)備允許應用程序?qū)EPROM和閃存儲器讀或?qū)?。使用這些硬件在非易失存儲器中存儲信息。
在UNIX/Windows系統(tǒng)中,使用映射到磁盤文件的RAM(易失)存儲器塊模擬EEPROM和閃存儲器。這給應用程序提供模擬EEPROM和閃存儲器的穩(wěn)定的存儲器。在電源故障時,應用程序檢索存儲在磁盤文件中存儲的數(shù)據(jù),好像它們在穩(wěn)定存儲器中存儲的一樣。
MLOAD使用這一設(shè)備從傳輸?shù)臄?shù)據(jù)流下載DVB部分。應用程序提供包含要加載部分的PID(程序ID)和過濾以減少加載的部分的數(shù)目為只對應用程序感興趣的部分。
在模擬環(huán)境中,在一個預配置表中給每一PID分配一個磁盤文件。當應用程序開始從一個給定的PID加載的部分時,該設(shè)備打開相關(guān)的磁盤文件,并周期地讀取它。每次從該文件中加載一部分時,該設(shè)備對它應用過濾準則。如果該部分通過過濾,則把它傳輸給應用程序。
從應用程序的觀點來看,該設(shè)備的行為好像這些部分從廣播的位流中加載一樣。
調(diào)諧器使用調(diào)諧器設(shè)備來請求關(guān)于機頂盒調(diào)諧器的信息,讀調(diào)諧器狀態(tài)(AGC,BER等)和設(shè)定和獲得調(diào)諧參數(shù)。該設(shè)備還允許頻率掃描操作。
在模擬環(huán)境中,這一設(shè)備從一個說明一個虛擬天線的文件中取它的數(shù)據(jù)。可以用虛擬天線檢測到的每一頻率都以其特征(速率符號,卷積碼,AGC,BER等)登記在這一文件中。
對于每一頻率,MLOAD設(shè)備的模擬文件的目錄(PID數(shù)據(jù))也被登記。這樣,如果應用程序調(diào)諧到一個不同的頻率,則像在實際情況中一樣該組可加載的PID改變。
RCARD使用這一設(shè)備與右智能卡讀卡機(如果可用的話)通信。該設(shè)備一般用于銀行卡。為安全起見和因為銀行卡代碼和數(shù)據(jù)是受保護的,因此不模擬這一設(shè)備。
LCARD使用這一設(shè)備與左智能卡讀卡機(如果可用的話)通信。該設(shè)備用于條件訪問系統(tǒng)智能卡。為安全起見和因為CA卡代碼和數(shù)據(jù)是受保護的,因此不模擬這一設(shè)備。
CA(條件訪問)
這一設(shè)備允許應用程序獲得關(guān)于條件訪問系統(tǒng)的信息并控制它。為安全起見和因為CA機構(gòu)是受保護的,因此不模擬這一設(shè)備。
應該理解,上面對本發(fā)明的說明純粹僅是舉例,可以在本發(fā)明的范圍內(nèi)對細節(jié)進行修改。
在說明書中公開的每一特征,和(只要合適的話)權(quán)利要求和附圖可以獨立地或以任何適當?shù)慕M合提供。
權(quán)利要求中出現(xiàn)的參考號碼僅為說明使用,對權(quán)利要求的范圍無限制效果。
權(quán)利要求
1.一種為接收機/解碼器測試應用程序的裝置,包括為模擬接收機/解碼器的功能的設(shè)備。
2.根據(jù)權(quán)利要求1的裝置,其中,所述裝置適用于運行應用程序。
3.根據(jù)權(quán)利要求1或2的裝置,其中,所述裝置適用于在第一進程中運行應用程序,和在第二進程中模擬接收機/解碼器的功能。4.根據(jù)權(quán)利要求3的裝置,其中,第一和第二進程彼此獨立。
5.根據(jù)權(quán)利要求3或4的裝置,其中,第一和第二進程運行在同一處理器上。
6.根據(jù)權(quán)利要求3到5中任何一個的裝置,另外包括一個分區(qū)的存儲器,用于允許在第一進程和第二進程之間傳送數(shù)據(jù)。
7.根據(jù)權(quán)利要求1或2的裝置,其中,所述裝置適用于在第一線程中運行應用程序,在第二線程中模擬接收機/解碼器的功能。
8.根據(jù)權(quán)利要求7的裝置,其中,第一和第二線程形成一個單一進程的幾部分。
9.根據(jù)權(quán)利要求7或8的裝置,另外包括一個分區(qū)的存儲器,用于允許在第一和第二線程之間傳送數(shù)據(jù)。
10.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,接收機/解碼器的功能至少部分用軟件模擬。
11.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,接收機/解碼器的功能使用硬件模擬,這些硬件相應于接收機/解碼器中的硬件。
12.根據(jù)前述權(quán)利要求中任何一個的裝置,包括存儲設(shè)備,用于存儲包含表示由在接收機/解碼器中的一項硬件產(chǎn)生的數(shù)據(jù)的文件。
13.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,所述裝置適用于產(chǎn)生一個為在屏幕上顯示的輸出,該輸出模擬接收機/解碼器的輸出。
14.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,所述裝置適用于接收表示應該由接收機/解碼器接收的數(shù)據(jù)的輸入數(shù)據(jù)。
15.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,所述裝置適用于產(chǎn)生一個為在屏幕上顯示的輸出,該輸出表示一個接收機/解碼器可以與之反應的硬件。
16.一種用于編輯和測試一個應用程序的裝置,包括一個用于編輯該應用程序的編輯器,和根據(jù)前述權(quán)利要求中任何一個權(quán)利要求用于測試該應用程序的裝置。
17.根據(jù)權(quán)利要求16的裝置,其中,編輯器適用于產(chǎn)生一個為在屏幕上顯示的輸出,和用于模擬接收機/解碼器的功能的設(shè)備適用于產(chǎn)生一個為在同一屏幕上顯示的輸出。
18.根據(jù)權(quán)利要求16或17的裝置,包括一個處理器,用于運行編輯器和用于模擬接收機/解碼器的功能的設(shè)備兩者。
19.根據(jù)權(quán)利要求16到18中任何一個的裝置,其中,用于模擬接收機/解碼器的功能的設(shè)備適用于運行已經(jīng)由編輯器編輯的應用程序。
20.根據(jù)前述權(quán)利要求中任何一個的裝置,其中,接收機/解碼器的功能至少是下述功能之一,例如從遙控器、鍵盤或諸如調(diào)制解調(diào)器的通信設(shè)備接收和處理輸入數(shù)據(jù),解碼視頻數(shù)據(jù),產(chǎn)生視頻輸出,調(diào)諧到廣播信號,與智能卡通信,優(yōu)選至少是下述設(shè)備的一個功能遙控器,串口,并口,總線1394,調(diào)制解調(diào)器,網(wǎng)絡(luò),堆棧,時鐘,鍵盤,指針,圖形設(shè)備,圖像設(shè)備,音頻設(shè)備,視頻設(shè)備,服務(wù)設(shè)備,顯示器,SCTV,SCVCR,SCAUX,電源,備份設(shè)備,MLOAD,調(diào)諧器,和智能卡。
21.一種工作站,包括一個用于編輯應用程序的編輯器,一個用于模擬接收機/解碼器的功能的模擬器,和一個用于顯示編輯器的輸出和模擬器的輸出的顯示器。
22.根據(jù)權(quán)利要求21的工作站,其中,模擬器適用于運行已經(jīng)由編輯器編輯的應用程序。
23.根據(jù)權(quán)利要求21或22的工作站,其中,模擬器的輸出在顯示器的一個窗口內(nèi)顯示。
24.根據(jù)權(quán)利要求21到23中任何一個的工作站,其中,在顯示器的一個窗口中模擬為給應用程序輸入數(shù)據(jù)的輸入設(shè)備。
25.一種為接收機/解碼器測試應用程序的方法,包括模擬該接收機/解碼器的功能。
26.一種編輯和測試應用程序的方法,包括編輯應用程序和另外包括根據(jù)權(quán)利要求25測試應用程序的方法。
27.一種計算機可讀介質(zhì),其上存儲有為執(zhí)行權(quán)利要求25或26的方法的程序。
28.一種計算機可讀介質(zhì),其上存儲有為執(zhí)行為接收機/解碼器測試應用程序的方法的程序,該方法包括模擬接收機/解碼器的功能。
29.一種計算機程序產(chǎn)品,包括為執(zhí)行權(quán)利要求25或26的方法的程序。
30.一種計算機程序產(chǎn)品,包括為執(zhí)行為接收機/解碼器測試應用程序的方法的程序,該方法另外包括模擬接收機/解碼器的功能。
31.一種為接收機/解碼器測試應用程序的方法,基本如這里參考
并由附圖所表示。
32.為接收機/解碼器測試應用程序的裝置,基本如這里參考
并由附圖所表示。
全文摘要
公開了一種為接收機/解碼器例如電視系統(tǒng)測試應用程序的裝置,該裝置包括用于模擬接收機/解碼器的功能的設(shè)備。還公開了為編輯和測試應用程序的裝置和一個相關(guān)的工作站。還公開了一種測試應用程序的方法,用該方法模擬接收機/解碼器的功能。
文檔編號G06F11/28GK1373970SQ00812575
公開日2002年10月9日 申請日期2000年6月12日 優(yōu)先權(quán)日1999年7月9日
發(fā)明者H·廖, B·馬森, J·B·G·M·伯奎 申請人:卡納爾股份有限公司