專利名稱:基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)和控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種能夠控制任何符合UPnP(通用即插即用Universal Plug and Play--UPnP)規(guī)范的設(shè)備的通用控制點系統(tǒng)結(jié)構(gòu)及其控制方法,屬于家庭網(wǎng)絡(luò)的 技術(shù)領(lǐng)域。
背景技術(shù):
家庭網(wǎng)絡(luò)是20世紀(jì)90年代興起的一項新技術(shù),它的目標(biāo)是實現(xiàn)家庭環(huán)境中設(shè) 備的信息化和網(wǎng)絡(luò)化,以使家居環(huán)境更加舒適、安全、高效和便捷。家庭網(wǎng)絡(luò)技 術(shù)是新興的信息技術(shù)和網(wǎng)絡(luò)技術(shù)在家庭環(huán)境中的自然延伸,在整個智能家居系統(tǒng) 中,它具有核心的地位和作用。近十多年來,國內(nèi)外在此領(lǐng)域進行了大量的研究, 出現(xiàn)了一批成熟的技術(shù)和產(chǎn)品。通用即插即用技術(shù)就是其中比較有代表性的一項 家庭網(wǎng)絡(luò)聯(lián)網(wǎng)技術(shù)。UPnP規(guī)范是由UPnP論壇制定的,它基于TCP/IP協(xié)議,可用于信息家電、 多媒體設(shè)備、安防監(jiān)視和個人電腦等設(shè)備的服務(wù)發(fā)現(xiàn)和自動配置。UPnP是獨立 于平臺和編程語言的規(guī)范,它采用一套標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議。UPnP使用簡單服務(wù)發(fā)現(xiàn)協(xié)議(Simple Service Discovery Protocol, SSDP)來完 成服務(wù)的發(fā)現(xiàn)。通過SSDP,設(shè)備可以宣布自身的存在,也可以發(fā)現(xiàn)其他可用的 設(shè)備和服務(wù)。SSDP使用HTTPU和HTTPMU傳送消息,HTTPU是HTTP協(xié)議的單 播UDP版本,而HTTPMU是HTTP協(xié)議的多播UDP版本。當(dāng)設(shè)備加入UPnP網(wǎng)絡(luò)時, 設(shè)備通過SSDP在HTTPMU上以多播的方式發(fā)送宣告消息,將設(shè)備本身和它能夠 提供的所有服務(wù)通知其他設(shè)備。當(dāng)控制點加入網(wǎng)絡(luò)或想要尋找某些設(shè)備或服務(wù) 時,它也通過SSDP發(fā)布多播搜索消息。如果有設(shè)備滿足控制點的査找條件,就 會通過SSDP發(fā)布一條單播響應(yīng)消息。除了 SSDP , UPnP還使用GEN A (Generic Event Notification Architecture)作為 事件通知框架,并使用SOAP ( Simple Object Access Protocol)作為遠(yuǎn)程過程調(diào)
的標(biāo)準(zhǔn)方法。GENA使用基于TCP或多播UDP的HTTP協(xié)議來發(fā)送和接收事件通 知,它提供了事件訂閱和事件發(fā)布的機制。SOAP是基于XML和HTTP的Intemet 遠(yuǎn)程過程調(diào)用標(biāo)準(zhǔn),UPnP用它來實現(xiàn)對設(shè)備的控制。UPnP在家庭網(wǎng)絡(luò)環(huán)境中的應(yīng)用具有良好的前景,但是就目前的應(yīng)用情況而 言,每個控制點一般只能控制某一類設(shè)備,如果一個家庭網(wǎng)絡(luò)內(nèi)部有很多不同種 類的UPnP設(shè)備,就需要安裝很多個控制點軟件,給用戶使用造成了很多不便。UPnP的技術(shù)原理為系統(tǒng)定義了三類基本的結(jié)構(gòu)單元設(shè)備(Devices)、服務(wù)(Services)和控制點 (Control Points)。設(shè)備是包含服務(wù)的實體,設(shè)備中包含有XML形式的設(shè)備描述文 檔;服務(wù)是UPnP中最小的可控制單位,它提供若干可由控制點控制的動作,并 定義有一組狀態(tài)記錄此服務(wù)的進展情況;控制點就是控制UPnP設(shè)備的網(wǎng)絡(luò)實體, 可用于發(fā)現(xiàn)和使用其他服務(wù)。UPnP的工作流程包括以下6個步驟(1) 尋址設(shè)備獲得IP地址(2) 發(fā)現(xiàn)控制點搜索網(wǎng)絡(luò)上的UPnP設(shè)備,而UPnP設(shè)備也可宣告自己的存在。(3) 描述控制點取得它所需要的UPnP設(shè)備描述。(4) 控制控制點向UPnP設(shè)備發(fā)出控制設(shè)備執(zhí)行相關(guān)動作的消息。(5) 事件如果控制點訂閱了事件,那么當(dāng)設(shè)備的狀態(tài)改變時,UPnP設(shè)備向 控制點發(fā)出事件消息。(6) 展示控制點利用展示頁面監(jiān)視UPnP設(shè)備的狀態(tài),也可通過頁面發(fā)出 控制命令。目前,UPnP控制點的實現(xiàn)有兩種方案方案l:該方案在控制點程序中預(yù)置設(shè)備的服務(wù)信息, 一種控制點程序只能 控制一類UPnP設(shè)備。該方案具體實現(xiàn)時,其發(fā)現(xiàn)過程和UPnP基礎(chǔ)協(xié)議中描述 的一樣,控制點程序收到設(shè)備的SSDP消息后,根據(jù)消息中的設(shè)備類型匹配該設(shè) 備是否是感興趣的設(shè)備,如果是感興趣的設(shè)備則下載設(shè)備的設(shè)備級XML描述文 檔,但并不下載設(shè)備的服務(wù)描述XML文檔。獲得設(shè)備描述后,控制點就能控制 該設(shè)備,在這個過程中所有的控制接口都是預(yù)置在控制點程序中的。該方案的缺陷是,所有服務(wù)描述文檔預(yù)置于控制點,相應(yīng)地,設(shè)備的控制界 面和控制接口也需要在控制點中預(yù)置。相當(dāng)于為每種設(shè)備預(yù)置"驅(qū)動程序",沒 有達到UPnP零配置的目的。同時,該方案要求每類UPnP設(shè)備必須嚴(yán)格標(biāo)準(zhǔn)化,對 于尚未標(biāo)準(zhǔn)化的未知設(shè)備,控制點將無法控制;如果某類設(shè)備更新時,控制點接 口軟件也必需重新安裝。方案2:該方案僅實現(xiàn)UPnP協(xié)議的發(fā)現(xiàn)和展示過程,并不實現(xiàn)描述、控制 和事件協(xié)議過程。它要求所有UPnP設(shè)備裝備Web服務(wù)器,控制點通過Web頁 面和設(shè)備直接交互,發(fā)送控制指令。該方案的缺陷是,未遵循UPnP技術(shù)標(biāo)準(zhǔn)。在協(xié)議上僅實現(xiàn)SSDP協(xié)議,未 實現(xiàn)SOAP、 GENA等協(xié)議;在過程上,僅實現(xiàn)發(fā)現(xiàn)和展示,未實現(xiàn)描述、控制 和事件。因此,該方案并非真正意義上的UPnP,只實現(xiàn)了一個UPnP的"殼"。 同時,該方案僅采用"設(shè)備地址",未使用"描述地址"和"服務(wù)地址",它要求 每個設(shè)備裝載Web服務(wù)器,控制點裝載Web瀏覽器,這對嵌入式設(shè)備是一個很 大的限制。發(fā)明內(nèi)容技術(shù)問題本發(fā)明的目的是提出一種基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)和控制方法,按照該結(jié)構(gòu)和方法設(shè)計的控制點能控制任何符合UPnP 規(guī)范的設(shè)備,克服了一種控制點只能控制一類設(shè)備的局限性。技術(shù)方案本發(fā)明的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)中,自 適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)由操作系統(tǒng)子系統(tǒng)、通用即插即用協(xié)議棧子系統(tǒng)、設(shè)備 控制子系統(tǒng)和用戶控制子系統(tǒng)4個部分組成;用戶控制子系統(tǒng)通過人機接口和用 戶進行交互,將解析編碼后的用戶命令饋送給設(shè)備控制子系統(tǒng),接受設(shè)備控制子 系統(tǒng)反饋的設(shè)備描述信息和狀態(tài)信息;設(shè)備控制子系統(tǒng)通過通用即插即用協(xié)議棧 子系統(tǒng)提供的應(yīng)用編程接口函數(shù)調(diào)用通用即插即用協(xié)議功能,向設(shè)備發(fā)送操作指 令,接受設(shè)備回送的操作執(zhí)行和狀態(tài)變化結(jié)果;通用即插即用協(xié)議棧子系統(tǒng)通過 操作系統(tǒng)使用通用控制點的物理接口設(shè)施,經(jīng)由網(wǎng)絡(luò)向設(shè)備發(fā)送消息,實現(xiàn)對設(shè) 備的控制。所述的用戶控制子系統(tǒng)通過圖形界面接受用戶的啟動控制點指令,向用戶顯 示設(shè)備可控功能和參數(shù)以及設(shè)備的狀態(tài),接受用戶對設(shè)備的控制命令。所述的通用即插即用協(xié)議棧子系統(tǒng)包括通用即插即用協(xié)議庫、微型可擴展標(biāo) 記語言解析器和控制點線程庫3個部分,通用即插即用協(xié)議庫實現(xiàn)簡單服務(wù)發(fā)現(xiàn) 協(xié)議、簡單對象訪問協(xié)議、通用事件通知結(jié)構(gòu)協(xié)議以及超文本傳送協(xié)議;微型可 擴展標(biāo)記語言解析器實現(xiàn)對上述所有協(xié)議的解碼和編碼;線程庫支持通用控制點 系統(tǒng)結(jié)構(gòu)的并發(fā)操作功能,每個模塊都含有接口函數(shù)供設(shè)備控制子系統(tǒng)使用。所述的設(shè)備控制子系統(tǒng)包括設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出模塊、設(shè)備狀態(tài)自適 應(yīng)顯示模塊和設(shè)備控制接口自適應(yīng)生成模塊3個模塊;設(shè)備信息和狀態(tài)自適應(yīng)導(dǎo) 出模塊根據(jù)設(shè)備的可擴展標(biāo)記語言描述導(dǎo)出關(guān)于設(shè)備、服務(wù)、狀態(tài)變量的層次化 數(shù)據(jù)結(jié)構(gòu);設(shè)備狀態(tài)自適應(yīng)顯示模塊提取層次化結(jié)構(gòu)中的靜態(tài)信息和動態(tài)信息, 顯示設(shè)備的可控狀態(tài)及其當(dāng)前屬性值;設(shè)備控制接口自適應(yīng)生成模塊根據(jù)層次化 結(jié)構(gòu)中的服務(wù)信息以及可控狀態(tài)生成控制接口,并將用戶命令轉(zhuǎn)換為服務(wù)規(guī)定的 遠(yuǎn)程調(diào)用方法,實現(xiàn)對指定設(shè)備指定功能的控制。它包括由用戶、通用控制點和被控設(shè)備協(xié)作完成的自適應(yīng)通用控制過程、設(shè) 備信息與狀態(tài)自適應(yīng)導(dǎo)出過程、設(shè)備狀態(tài)自適應(yīng)顯示過程和設(shè)備控制接口自適應(yīng) 生成過程4個過程;所述自適應(yīng)通用控制過程是通用控制點系統(tǒng)結(jié)構(gòu)控制方法的 基礎(chǔ),所述的設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出過程、設(shè)備狀態(tài)自適應(yīng)顯示過程和設(shè)備 控制接口自適應(yīng)生成過程分別由系統(tǒng)結(jié)構(gòu)中的設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出模塊、 設(shè)備狀態(tài)自適應(yīng)顯示模塊和設(shè)備控制接口自適應(yīng)生成模塊完成。所述的自適應(yīng)通用控制過程,就是用戶通過人機命令啟動通用控制點,控制 點通過簡單服務(wù)發(fā)現(xiàn)協(xié)議的多播搜索消息在網(wǎng)絡(luò)內(nèi)自動搜索通用即插即用設(shè)備, 通過超文本傳送協(xié)議的獲得命令獲取設(shè)備可擴展標(biāo)記語言形式的通用描述文檔, 通用控制點據(jù)此自適應(yīng)生成設(shè)備狀態(tài)顯示和設(shè)備控制接口,用戶利用此接口發(fā)出 命令,控制點據(jù)此發(fā)送SOAP協(xié)議消息控制設(shè)備的各種操作,并通過通用事件通 知結(jié)構(gòu)協(xié)議的通知消息動態(tài)獲取設(shè)備的狀態(tài)更新信息;一個控制點可以同時控制 一個或多個已知或未知的設(shè)備。所述的設(shè)備信息和狀態(tài)自適應(yīng)導(dǎo)出過程,就是首先根據(jù)通用即插即用發(fā)現(xiàn)過 程中的簡單服務(wù)發(fā)現(xiàn)協(xié)議消息中位置字段下載設(shè)備描述可擴展標(biāo)記語言文檔,在 該文檔中包含了服務(wù)描述文檔的通用資源定位地址信息,解析該設(shè)備描述文檔, 然后提取服務(wù)描述文檔的通用資源定位地址,下載所有的服務(wù)描述文檔,解析這 些服務(wù)描述文檔,根據(jù)服務(wù)可控狀態(tài)變量獲得每個服務(wù)的可控單元,通過該過程, 控制點發(fā)現(xiàn)并自適應(yīng)地導(dǎo)出設(shè)備服務(wù)和狀態(tài)的描述,所述的描述采用可擴展的層
次化多重鏈?zhǔn)浇Y(jié)構(gòu)存儲,這樣的通用結(jié)構(gòu)和通用控制方法的結(jié)合實現(xiàn)了控制點的 通用性、自適應(yīng)性和可擴展性。所述的設(shè)備狀態(tài)自適應(yīng)顯示過程,就是根據(jù)設(shè)備的描述結(jié)構(gòu)獲知設(shè)備所提供 的所有服務(wù),針對每個服務(wù),根據(jù)狀態(tài)變量類型的不同,在操作系統(tǒng)下動態(tài)生成 不同類型的控件顯示當(dāng)前的服務(wù)狀態(tài)。在整個過程中,通過通用事件通知結(jié)構(gòu)協(xié) 議的訂閱/通知機制確保每個狀態(tài)變量值在控制點和設(shè)備中保持一致。所述的設(shè)備控制接口自適應(yīng)生成過程,就是根據(jù)設(shè)備描述結(jié)構(gòu)中每個服務(wù)的 狀態(tài)變量,動態(tài)生成簡單對象訪問協(xié)議控制接口,用于遠(yuǎn)程控制該設(shè)備;同時控 制點根據(jù)狀態(tài)變量類型的不同,在控制界面動態(tài)生成不同的控件,供用戶控制設(shè) 備之用,并動態(tài)關(guān)聯(lián)控件的響應(yīng)事件和簡單對象訪問協(xié)議控制接口。有益效果本方案設(shè)計的自適應(yīng)通用控制點能夠控制任何符合UPnP規(guī)范的 設(shè)備,包括未知類型的設(shè)備,并且一個通用控制點可以同時控制多個設(shè)備。被控 設(shè)備的設(shè)備和服務(wù)描述可以在順從UPnP規(guī)范的前提下自行定義,控制點能夠自適 應(yīng)地解釋,并自動轉(zhuǎn)換成用戶控制界面和控制接口。因此,允許被控設(shè)備定義專 有功能或擴展功能,并不需要等待UPnP論壇標(biāo)準(zhǔn)化進程全部完成就可以部署所需 的UPnP網(wǎng)絡(luò)。通常該標(biāo)準(zhǔn)化進程會耗費較長的時間。本方案設(shè)計的系統(tǒng)不需要借助Web服務(wù)器或者Web瀏覽器來實現(xiàn)通用控制功 能,便于在嵌入式環(huán)境中實現(xiàn),并且完全符合UPnP規(guī)范,有較好的兼容性和可擴 展性。
圖l是自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu), 圖2是設(shè)備自適應(yīng)通用控制過程圖3是設(shè)備信息與狀態(tài)自動導(dǎo)出過程, 圖4是設(shè)備狀態(tài)自適應(yīng)顯示過程, 圖5是設(shè)備控制接口自適應(yīng)生成過程。具體實現(xiàn)方式本發(fā)明的特點在于控制點無需預(yù)先配置被控設(shè)備的控制信息,控制點軟件能 根據(jù)所發(fā)現(xiàn)的設(shè)備和服務(wù)XML描述文檔自動提取設(shè)備控制信息,自適應(yīng)生成設(shè)備
控制接口。這樣, 一個控制點可以支持對任何符合UPnP規(guī)范的設(shè)備的控制,從而 實現(xiàn)UPnP通用控制功能。由于不同類型的UPnP設(shè)備提供不同的服務(wù),每個服務(wù)之間有很大的差別;同 一類型設(shè)備,由于型號不同或版本不同,具體服務(wù)也會有一定差異。因此,自適 應(yīng)通用控制點要能控制各種不同的設(shè)備,必需能動態(tài)生成設(shè)備控制界面和控制接 口,不能依靠在控制點程序中預(yù)置控制接口的簡單方法來實現(xiàn)控制。本方案根據(jù) 每個UPnP服務(wù)包含的特定的狀態(tài)變量描述,在控制點中自動生成相應(yīng)的控制界 面,并且自動生成相應(yīng)的控制接口。自適應(yīng)通用控制實現(xiàn)的關(guān)鍵是描述信息的自學(xué)習(xí)過程和控制信息的自適應(yīng) 生成。在本方案的通用控制點中未預(yù)設(shè)任何設(shè)備的信息,即所設(shè)計控制點對控制 對象未作任何限定,家庭網(wǎng)絡(luò)中任何類型設(shè)備的信息都可以通過UPnP的發(fā)現(xiàn)機 制自動獲取。獲取的信息以符合UPnP規(guī)范模板的通用XML描述形式給出,控制 點在獲取感興趣的設(shè)備和服務(wù)信息后,通過解析XML描述的語義,學(xué)習(xí)導(dǎo)出設(shè) 備各個服務(wù)的控制方法和屬性,并將它們轉(zhuǎn)換為可供程序使用的內(nèi)部描述數(shù)據(jù)結(jié) 構(gòu),最后由通用控制點程序根據(jù)上述數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)自適應(yīng)生成控制界面和控 制接口,呈現(xiàn)給用戶使用,實現(xiàn)對各種設(shè)備的控制。由于設(shè)備的多樣性,控制點控制的設(shè)備類型和數(shù)量無法預(yù)先設(shè)定;每個設(shè)備 包含的服務(wù)數(shù)量也有很大的差異,取決于該設(shè)備的功能和復(fù)雜度;表征每個服務(wù) 執(zhí)行狀況的狀態(tài)變量數(shù)也是因服務(wù)而可變的。因此,如何轉(zhuǎn)換、存儲并處理設(shè)備、 服務(wù)和狀態(tài)變量的信息也是通用控制實現(xiàn)的一個關(guān)鍵。本方案采用了可擴展的層 次化數(shù)據(jù)結(jié)構(gòu),這樣的通用結(jié)構(gòu)和通用控制軟件的結(jié)合實現(xiàn)了控制點的通用性、 自適應(yīng)性和可擴展性。UPnP自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)如圖l所示,從圖中可以看出在操作系統(tǒng)子 系統(tǒng)之上是UPnP協(xié)議棧子系統(tǒng),其中包括微型XML解析器、線程庫和UPnP相關(guān) 協(xié)議庫。其中XML解析器用來把設(shè)備和服務(wù)的XML描述文檔解析成描述結(jié)構(gòu), 線程庫使控制點支持并發(fā)操作,UPnP協(xié)議庫實現(xiàn)了SSDP、 SOAP、 GENA、 HTTP 協(xié)議。在協(xié)議棧子系統(tǒng)之上是設(shè)備控制子系統(tǒng),包括設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出模 塊、設(shè)備狀態(tài)自適應(yīng)顯示模塊和設(shè)備控制接口自適應(yīng)生成模塊。設(shè)備信息與狀態(tài) 自適應(yīng)導(dǎo)出模塊從設(shè)備相關(guān)的XML描述中提取有用信息,將其轉(zhuǎn)換為關(guān)于設(shè)備、 服務(wù)、狀態(tài)變量的層次化數(shù)據(jù)結(jié)構(gòu);在該模塊之上的設(shè)備狀態(tài)自適應(yīng)顯示模塊提 取層次化結(jié)構(gòu)中的靜態(tài)信息和動態(tài)信息,顯示設(shè)備的可控狀態(tài)及其當(dāng)前屬性值; 設(shè)備控制接口自適應(yīng)生成模塊根據(jù)層次化結(jié)構(gòu)中的服務(wù)信息以及可控狀態(tài)生成 控制接口,并將用戶的控制輸入轉(zhuǎn)換為服務(wù)規(guī)定的遠(yuǎn)程調(diào)用方法,實現(xiàn)對指定設(shè) 備指定功能的控制。在設(shè)備控制子系統(tǒng)之上的用戶控制子系統(tǒng),使端用戶可以便 捷地控制UPnP設(shè)備。在上述所有模塊中,設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出模塊、設(shè)備狀態(tài)自適應(yīng)顯示 模塊和設(shè)備控制接口自適應(yīng)生成模塊是通用控制點系統(tǒng)結(jié)構(gòu)最主要的三個模塊。采用上述系統(tǒng)結(jié)構(gòu)的通用控制點和用戶及設(shè)備協(xié)調(diào)合作,完成基于UPnP的 設(shè)備自適應(yīng)通用控制,其過程如圖2所示。用戶在啟動控制點后,控制點組播SSDP M-SEARCH消息,在網(wǎng)絡(luò)內(nèi)搜索UPnP設(shè)備,UPnP設(shè)備收到該組播消息后回應(yīng) SSDPNOTIFY消息,控制點根據(jù)NOTIFY消息中攜帶的信息,采用HTTPGET獲 取設(shè)備的XML描述文檔,并解析這些XML文檔,最后根據(jù)文檔內(nèi)容動態(tài)生成設(shè) 備狀態(tài)信息和控制接口,這時用戶即可通過控制點來控制UPnP設(shè)備??刂葡?采用SOAP協(xié)議,當(dāng)設(shè)備狀態(tài)變化后通過GENA的NOTIFY消息通知控制點,使 控制點可動態(tài)更新設(shè)備狀態(tài)。其中,設(shè)備信息與狀態(tài)自適應(yīng)生成過程如圖3所示。控制點先根據(jù)UPnP發(fā)現(xiàn) 過程中的SSDP消息中Location字段下載設(shè)備描述XML文檔,在該文檔中包含了 服務(wù)描述文檔的URL地址信息。解析該設(shè)備描述文檔,然后提取服務(wù)描述文檔的 URL地址信息,下載所有的服務(wù)描述文檔,解析這些服務(wù)描述文檔,即可根據(jù)服 務(wù)狀態(tài)變量及其屬性獲得每個服務(wù)的可控單元信息。通過該過程,在控制點自適 應(yīng)動態(tài)獲得設(shè)備描述結(jié)構(gòu),其中描述結(jié)構(gòu)采用多層次的鏈?zhǔn)浇Y(jié)構(gòu)。自適應(yīng)通用控制點通過管理多個設(shè)備的數(shù)據(jù)結(jié)構(gòu)能同時控制多個UPnP設(shè) 備。在本方案中,把所有的設(shè)備描述都存放在GlobalDeviceList指向的鏈表中,每個設(shè)備占用鏈表的一個節(jié)點,每個設(shè)備的具體描述存儲在stmct Common一Device類型的變量device中,這種鏈表形式允許通用控制點能夠控制多個設(shè)備,并且可以是不同類型的設(shè)備。結(jié)構(gòu)Common一Device中存儲了設(shè)備的 UDN 、設(shè)備描述URL、 FriendlyName、展示URL、本設(shè)備所有的服務(wù)的信息。 同時,每個設(shè)備擁有的服務(wù)的數(shù)量也是可變的,我們也用鏈表結(jié)構(gòu)存儲設(shè)備提供 的所有的服務(wù)信息,每個服務(wù)占有一個鏈表結(jié)點,根據(jù)設(shè)備提供的服務(wù)的數(shù)量自
適應(yīng)的生成服務(wù)《連表。在設(shè)備描述結(jié)構(gòu)CommonDevice中,元素servicenode指向 本設(shè)備所擁有的服務(wù)鏈表,元素ServiceLength表示服務(wù)個數(shù)。關(guān)于每個服務(wù)的 具體描述存儲在struct Commonservice結(jié)構(gòu)的變量service中,該結(jié)構(gòu)存儲了服 務(wù)的服務(wù)ID、服務(wù)類型、事件的URL、控制URL、服務(wù)描述URL等服務(wù)基本信 息。同時,每個服務(wù)都有描述狀態(tài)的變量,且狀態(tài)變量的數(shù)量在各個服務(wù)也是不 同的,程序中也采用鏈表結(jié)構(gòu)存儲所有的狀態(tài)變量。每個狀態(tài)變量包括變量名, 狀態(tài)變量的當(dāng)前值,狀態(tài)變量的類型,如果是整型類型則可包括最大值、最小值, 如果是枚舉型的,則可包括合法的變量值??刂泣c在動態(tài)生成控制界面時,會根 據(jù)狀態(tài)變量的類型和取值范圍自適應(yīng)生成控制界面。設(shè)備狀態(tài)自適應(yīng)顯示過程如圖4所示??刂泣c會根據(jù)設(shè)備的描述結(jié)構(gòu)獲知設(shè) 備所提供的所有服務(wù),針對每個服務(wù),根據(jù)狀態(tài)變量類型的不同,在操作系統(tǒng)下 動態(tài)生成不同類型的控件顯示當(dāng)前的服務(wù)狀態(tài)。在整個過程中,通過GENA協(xié)議 的SUBSCRIBE/NOTIFY機制確保每個狀態(tài)變量值在控制點和設(shè)備中的一致性。設(shè)備控制接口自適應(yīng)生成過程如圖5所示??刂泣c會根據(jù)設(shè)備描述結(jié)構(gòu)中每 個服務(wù)中的狀態(tài)變量,動態(tài)生成SOAP控制接口,用于遠(yuǎn)程控制該設(shè)備;同時, 控制點會根據(jù)狀態(tài)變量類型的不同,在控制界面動態(tài)生成不同的控件,供用戶控 制設(shè)備之用,并動態(tài)關(guān)聯(lián)控件的響應(yīng)事件和SOAP控制接口 。
權(quán)利要求
1.一種基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu),其特征在于自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)由操作系統(tǒng)子系統(tǒng)、通用即插即用協(xié)議棧子系統(tǒng)、設(shè)備控制子系統(tǒng)和用戶控制子系統(tǒng)4個部分組成;用戶控制子系統(tǒng)通過人機接口和用戶進行交互,將解析編碼后的用戶命令饋送給設(shè)備控制子系統(tǒng),接受設(shè)備控制子系統(tǒng)反饋的設(shè)備描述信息和狀態(tài)信息;設(shè)備控制子系統(tǒng)通過通用即插即用協(xié)議棧子系統(tǒng)提供的應(yīng)用編程接口函數(shù)調(diào)用通用即插即用協(xié)議功能,向設(shè)備發(fā)送操作指令,接受設(shè)備回送的操作執(zhí)行和狀態(tài)變化結(jié)果;通用即插即用協(xié)議棧子系統(tǒng)通過操作系統(tǒng)使用通用控制點的物理接口設(shè)施,經(jīng)由網(wǎng)絡(luò)向設(shè)備發(fā)送消息,實現(xiàn)對設(shè)備的控制。
2. 根據(jù)權(quán)利要求l所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu), 其特征在于所述的用戶控制子系統(tǒng)通過圖形界面接受用戶的啟動控制點指令, 向用戶顯示設(shè)備可控功能和參數(shù)以及設(shè)備的狀態(tài),接受用戶對設(shè)備的控制命令。
3. 根據(jù)權(quán)利要求l所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu), 其特征在于所述的通用即插即用協(xié)議棧子系統(tǒng)包括通用即插即用協(xié)議庫、微型 可擴展標(biāo)記語言解析器和控制點線程庫3個部分,通用即插即用協(xié)議庫實現(xiàn)簡單 服務(wù)發(fā)現(xiàn)協(xié)議、簡單對象訪問協(xié)議、通用事件通知結(jié)構(gòu)協(xié)議以及超文本傳送協(xié)議; 微型可擴展標(biāo)記語言解析器實現(xiàn)對上述所有協(xié)議的解碼和編碼;線程庫支持通用 控制點系統(tǒng)結(jié)構(gòu)的并發(fā)操作功能,每個部分都含有接口函數(shù)供設(shè)備控制子系統(tǒng)使 用。
4. 根據(jù)權(quán)利要求l所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu), 其特征在于所述的設(shè)備控制子系統(tǒng)包括設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出模塊、設(shè)備 狀態(tài)自適應(yīng)顯示模塊和設(shè)備控制接口自適應(yīng)生成模塊3個模塊;設(shè)備信息和狀態(tài) 自適應(yīng)導(dǎo)出模塊根據(jù)設(shè)備的可擴展標(biāo)記語言描述導(dǎo)出關(guān)于設(shè)備、服務(wù)、狀態(tài)變量 的層次化數(shù)據(jù)結(jié)構(gòu);設(shè)備狀態(tài)自適應(yīng)顯示模塊提取層次化結(jié)構(gòu)中的靜態(tài)信息和動 態(tài)信息,顯示設(shè)備的可控狀態(tài)及其當(dāng)前屬性值;設(shè)備控制接口自適應(yīng)生成模塊根 據(jù)層次化結(jié)構(gòu)中的服務(wù)信息以及可控狀態(tài)生成控制接口,并將用戶命令轉(zhuǎn)換為服 務(wù)規(guī)定的遠(yuǎn)程調(diào)用方法,實現(xiàn)對指定設(shè)備指定功能的控制。
5. —種如權(quán)利要求l所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié) 構(gòu)的控制方法,其特征在于它包括由用戶、通用控制點和被控設(shè)備協(xié)作完成的 自適應(yīng)通用控制過程、設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出過程、設(shè)備狀態(tài)自適應(yīng)顯示過 程和設(shè)備控制接口自適應(yīng)生成過程4個過程;所述自適應(yīng)通用控制過程是通用控 制點系統(tǒng)結(jié)構(gòu)控制方法的基礎(chǔ),所述的設(shè)備信息與狀態(tài)自適應(yīng)導(dǎo)出過程、設(shè)備狀 態(tài)自適應(yīng)顯示過程和設(shè)備控制接口自適應(yīng)生成過程分別由系統(tǒng)結(jié)構(gòu)中的設(shè)備信 息與狀態(tài)自適應(yīng)導(dǎo)出模塊、設(shè)備狀態(tài)自適應(yīng)顯示模塊和設(shè)備控制接口自適應(yīng)生成 模塊完成。
6. 根據(jù)權(quán)利要求5所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)的 控制方法,其特征在于所述的自適應(yīng)通用控制過程,就是用戶通過人機命令啟 動通用控制點,控制點通過簡單服務(wù)發(fā)現(xiàn)協(xié)議的多播搜索消息在網(wǎng)絡(luò)內(nèi)自動搜索 通用即插即用設(shè)備,通過超文本傳送協(xié)議的獲得命令獲取設(shè)備可擴展標(biāo)記語言形 式的通用描述文檔,通用控制點據(jù)此自適應(yīng)生成設(shè)備狀態(tài)顯示和設(shè)備控制接口, 用戶利用此接口發(fā)出命令,控制點據(jù)此發(fā)送SOAP協(xié)議消息控制設(shè)備的各種操 作,并通過通用事件通知結(jié)構(gòu)協(xié)議的通知消息動態(tài)獲取設(shè)備的狀態(tài)更新信息;一 個控制點可以同時控制一個或多個已知或未知的設(shè)備。
7. 根據(jù)權(quán)利要求5所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)控制方法,其特征在于所述的設(shè)備信息和狀態(tài)自適應(yīng)導(dǎo)出過程,就是首先根據(jù) 通用即插即用發(fā)現(xiàn)過程中的簡單服務(wù)發(fā)現(xiàn)協(xié)議消息中位置字段下載設(shè)備描述可 擴展標(biāo)記語言文檔,在該文檔中包含了服務(wù)描述文檔的通用資源定位地址信息, 解析該設(shè)備描述文檔,然后提取服務(wù)描述文檔的通用資源定位地址,下載所有的 服務(wù)描述文檔,解析這些服務(wù)描述文檔,根據(jù)服務(wù)可控狀態(tài)變量獲得每個服務(wù)的 可控單元,通過該過程,控制點發(fā)現(xiàn)并自適應(yīng)地導(dǎo)出設(shè)備服務(wù)和狀態(tài)的描述,所 述的描述采用可擴展的層次化多重鏈?zhǔn)浇Y(jié)構(gòu)存儲,這樣的通用結(jié)構(gòu)和通用控制方 法的結(jié)合實現(xiàn)了控制點的通用性、自適應(yīng)性和可擴展性。
8. 根據(jù)權(quán)利要求5所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)控制方法,其特征在于所述的設(shè)備狀態(tài)自適應(yīng)顯示過程,就是根據(jù)設(shè)備的描述 結(jié)構(gòu)獲知設(shè)備所提供的所有服務(wù),針對每個服務(wù),根據(jù)狀態(tài)變量類型的不同,在 操作系統(tǒng)下動態(tài)生成不同類型的控件顯示當(dāng)前的服務(wù)狀態(tài)。在整個過程中,通過 通用事件通知結(jié)構(gòu)協(xié)議的訂閱/通知機制確保每個狀態(tài)變量值在控制點和設(shè)備中 保持一致。
9.根據(jù)權(quán)利要求5所述的基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)控制方法,其特征在于所述的設(shè)備控制接口自適應(yīng)生成過程,就是根據(jù)設(shè)備描 述結(jié)構(gòu)中每個服務(wù)的狀態(tài)變量,動態(tài)生成簡單對象訪問協(xié)議控制接口,用于遠(yuǎn)程 控制該設(shè)備;同時控制點根據(jù)狀態(tài)變量類型的不同,在控制界面動態(tài)生成不同的控件,供用戶控制設(shè)備之用,并動態(tài)關(guān)聯(lián)控件的響應(yīng)事件和簡單對象訪問協(xié)議控 制接口。
全文摘要
基于通用即插即用的自適應(yīng)通用控制點系統(tǒng)結(jié)構(gòu)和控制方法涉及一種能夠控制任何符合UPnP規(guī)范的設(shè)備的通用控制點系統(tǒng)結(jié)構(gòu)及其控制方法,用戶控制子系統(tǒng)通過人機接口和用戶進行交互,將解析編碼后的用戶命令饋送給設(shè)備控制子系統(tǒng),接受設(shè)備控制子系統(tǒng)反饋的設(shè)備描述信息和狀態(tài)信息;設(shè)備控制子系統(tǒng)通過通用即插即用協(xié)議棧子系統(tǒng)提供的應(yīng)用編程接口函數(shù)調(diào)用通用即插即用協(xié)議功能,向設(shè)備發(fā)送操作指令,接受設(shè)備回送的操作執(zhí)行和狀態(tài)變化結(jié)果;通用即插即用協(xié)議棧子系統(tǒng)通過操作系統(tǒng)使用通用控制點的物理接口設(shè)施,經(jīng)由網(wǎng)絡(luò)向設(shè)備發(fā)送消息,實現(xiàn)對設(shè)備的控制。
文檔編號G05B19/418GK101162393SQ20071013558
公開日2008年4月16日 申請日期2007年11月13日 優(yōu)先權(quán)日2007年11月13日
發(fā)明者孟旭東, 糜正琨, 肖繼民 申請人:南京郵電大學(xué)