專利名稱:多例輸入設(shè)備控制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及攝像機(jī),更具體地說,涉及攝像機(jī)與應(yīng)用程序的接口。
以往,當(dāng)一個(gè)應(yīng)用程序連接到一部攝像機(jī)時(shí),其他的程序?qū)⒈唤故褂眠@部攝像機(jī)。當(dāng)一個(gè)應(yīng)用程序試圖和一部攝像機(jī)通信時(shí),它將調(diào)用相應(yīng)的驅(qū)動程序文件或動態(tài)連接庫(DLL,*.dll)文件。通常,一個(gè)動態(tài)連接庫提供一個(gè)或多個(gè)特殊的函數(shù),一個(gè)應(yīng)用程序通過和該動態(tài)連接庫(DLL)建立連接來訪問這些函數(shù)。動態(tài)連接庫也可以同時(shí)包括數(shù)據(jù)。一些動態(tài)連接庫也提供有操作系統(tǒng)(如視窗操作系統(tǒng)),它們可以用于任何操作系統(tǒng)應(yīng)用程序。其它的動態(tài)連接庫專門為特殊的應(yīng)用程序編寫,他們和應(yīng)用程序一起被調(diào)入系統(tǒng)(如一個(gè)視頻控制應(yīng)用程序),當(dāng)一個(gè)視頻控制應(yīng)用程序請求連接到一部攝像機(jī)時(shí),相應(yīng)的驅(qū)動程序便檢查以確保沒有其它的應(yīng)用程序已經(jīng)打開了該驅(qū)動程序文件(*.dll),如果沒有,該驅(qū)動程序?qū)⒋蜷_相應(yīng)的驅(qū)動程序文件。當(dāng)打開后,通過這個(gè)打開的攝像機(jī)驅(qū)動程序文件,這里便存在了一個(gè)在攝像機(jī)和相應(yīng)的應(yīng)用程序之間的單線程的連接。如
圖1所示。
如圖1中所描述的,驅(qū)動程序文件14被驅(qū)動程序12打開,驅(qū)動程序12被調(diào)用應(yīng)用程序10調(diào)用,同時(shí),驅(qū)動程序文件14被載入調(diào)用應(yīng)用程序的存儲器空間中。由于攝像機(jī)驅(qū)動程序文件14已經(jīng)被該應(yīng)用程序10打開,下一個(gè)企圖訪問該攝像機(jī)的應(yīng)用程序?qū)⒈唤乖L問。這是因?yàn)閿z像機(jī)驅(qū)動程序文件已經(jīng)被調(diào)入了第一個(gè)應(yīng)用程序的存儲器中,將無法被其它的調(diào)用應(yīng)用程序訪問。因此,每一個(gè)可能調(diào)用一個(gè)攝像機(jī)的應(yīng)用程序必須考慮該攝像機(jī)已經(jīng)被其它的應(yīng)用程序使用的可能性。所以,這樣的應(yīng)用程序?qū)⒈蛔钄?,因?yàn)樾枰紫葯z查確定是否其它的首先被執(zhí)行的應(yīng)用程序已經(jīng)連接到了該攝像機(jī),如果其它的首先被執(zhí)行的應(yīng)用程序已經(jīng)連接到了該攝像機(jī),第2個(gè)調(diào)用應(yīng)用程序必須有允許它和已經(jīng)連接到攝像機(jī)的應(yīng)用程序商議攝像機(jī)共享的例程。但是,這種共享是單實(shí)例的,這意味著在攝像機(jī)和第2個(gè)應(yīng)用程序的連接可以被建立之前,攝像機(jī)和第1個(gè)應(yīng)用程序之間的連接將不得不被中斷(即,第1個(gè)應(yīng)用程序?qū)⒉坏貌槐唤K止或者攝像機(jī)被關(guān)閉)。所有權(quán),優(yōu)先權(quán),其它相關(guān)的安全問題以及適當(dāng)?shù)腻e(cuò)誤處理必須通過兩個(gè)競爭的應(yīng)用程序間的通信來解決。目前,甚至沒用應(yīng)用程序試圖去解決上述任意一個(gè)問題,因此,如果一個(gè)調(diào)用應(yīng)用程序和攝像機(jī)之間的連接不能被建立,異常的應(yīng)用程序錯(cuò)誤被操作系統(tǒng)解決,操作系統(tǒng)發(fā)送更加不清楚、不可理解的錯(cuò)誤消息,使得最終的用戶僅僅被通知一個(gè)正確的連接無法被建立。
應(yīng)用程序的大小,適用性和可用性在一直不斷地增加,應(yīng)用程序的發(fā)展趨勢也已經(jīng)由向單一的巨大的應(yīng)用程序發(fā)展轉(zhuǎn)變?yōu)橄蛴稍S多小子程序組成的應(yīng)用程序發(fā)展。這種模塊化的方法集中了許多優(yōu)點(diǎn),如使后續(xù)的調(diào)整和配置變得很容易。此外,操作系統(tǒng)的供應(yīng)商同樣已經(jīng)采用了這樣的模塊化的方法,并提供了許多標(biāo)準(zhǔn)的子程序和對象來處理應(yīng)用類的功能。如隊(duì)列化文件到打印機(jī)中,載入并運(yùn)行打印機(jī)動態(tài)連接庫文件來打印文件。這些動態(tài)連接庫文件本身也是對象或子程序。為了使由不同的高級語言編寫的對象和小子程序之間允許相互操作,操作系統(tǒng)的供應(yīng)商已經(jīng)開發(fā)了可執(zhí)行程序的模型,這些模型可以在二進(jìn)制級別上相互兼容。微軟公司開發(fā)的組件對象模型(COM)便是這樣一個(gè)二進(jìn)制碼模型。COM使程序員可以開發(fā)可以被任何和COM兼容的應(yīng)用程序訪問的對象。盡管將大的單一的應(yīng)用程序轉(zhuǎn)化為一組小的子程序和對象可以獲得很多好處,但這些好處必須和由于需要額外的程序支持這樣的子程序和對象之間的進(jìn)程通信而增加的負(fù)擔(dān)相平衡。
除了在實(shí)用性和復(fù)雜性上的發(fā)展,多元的應(yīng)用程序正在從單一主機(jī)上移植到多主機(jī)的異構(gòu)網(wǎng)絡(luò)環(huán)境中。因此,我們也已經(jīng)聽說了這樣的單獨(dú)的應(yīng)用程序,它由許多由不同高級語言編寫的子程序組成,其中每一個(gè)子程序位于一臺分立的計(jì)算機(jī)上,而所有這些計(jì)算機(jī)通過一個(gè)網(wǎng)絡(luò)被連接到一起。在這樣的實(shí)現(xiàn)中,對高效的網(wǎng)內(nèi)的和網(wǎng)間的和進(jìn)程間的通信需求成為了一個(gè)新的問題,從程序員編寫應(yīng)用程序的主要任務(wù)中分離出來。程序員不得不處理由于將應(yīng)用程序組件分布到網(wǎng)絡(luò)中帶來的通信問題。再一次,操作系統(tǒng)的供應(yīng)商們已經(jīng)意識到了這個(gè)挑戰(zhàn)和這種潛在的轉(zhuǎn)移,并且以不同的方式致力于它的解決。微軟公司已經(jīng)通過開發(fā)分布式組件對象模型(DCOM)擴(kuò)展了COM的功能。DCOM是COM的一個(gè)擴(kuò)展,用來支持通過網(wǎng)絡(luò)的對象的分布。除了作為COM的一個(gè)擴(kuò)展,DCOM提供了一個(gè)接口用來處理網(wǎng)絡(luò)通信的細(xì)節(jié)問題,以便使開發(fā)人員將精力集中于他們的主要工作——專用應(yīng)用程序的開發(fā)上,DCOM被設(shè)計(jì)用來滿足企業(yè)對分布組件結(jié)構(gòu)的需求。例如,一家公司可能希望建造并采用一個(gè)客戶訂單登記程序,該程序涉及幾種不同的功能,如稅務(wù)計(jì)算,客戶信用卡核實(shí),貨物清單管理,保證說明更新,和訂單登記。使用DCOM,該應(yīng)用程序可以由5個(gè)分立的組件建立,運(yùn)行于一個(gè)服務(wù)器上,可以通過瀏覽器進(jìn)行訪問。該程序中的位于不同計(jì)算機(jī)上的每一個(gè)組件訪問一個(gè)不同的數(shù)據(jù)庫。程序員可以專心于應(yīng)用程序的開發(fā),而DCOM來處理關(guān)于該應(yīng)用程序的分立組件之間的進(jìn)程間通信方面的問題。例如,DCOM將處理組件通信和合適的隊(duì)列的集成,以及在一臺服務(wù)器上的組件應(yīng)用程序和基于超文本鏈接語言(HTML)的因特網(wǎng)應(yīng)用程序的結(jié)合。
本發(fā)明結(jié)合了一個(gè)可執(zhí)行程序的特性和對多個(gè)應(yīng)用程序共享單一的輸入設(shè)備(如攝像機(jī))的需要。一個(gè)輸入設(shè)備如攝像機(jī)是一個(gè)外部設(shè)備,它在響應(yīng)一個(gè)來自應(yīng)用程序的調(diào)用時(shí)被打開并一直保持打開狀態(tài)。本發(fā)明提供了一個(gè)可執(zhí)行程序,它被實(shí)現(xiàn)為一個(gè)允許多個(gè)應(yīng)用程序和單一的輸入設(shè)備通信的進(jìn)程。通過建立一個(gè)虛擬的通向物理輸入設(shè)備的接口(一個(gè)實(shí)例),和將該輸入設(shè)備控制可執(zhí)行文件載入一個(gè)進(jìn)程中,上述的發(fā)明可以被實(shí)現(xiàn)。一個(gè)實(shí)例是一個(gè)實(shí)際的使用和因此導(dǎo)致的調(diào)入存儲器的實(shí)體的一份拷貝的虛擬建立。該可執(zhí)行程序進(jìn)程作為一個(gè)服務(wù)器,允許多個(gè)應(yīng)用程序和相同的輸入設(shè)備實(shí)現(xiàn)接口。該多例輸入設(shè)備控制(MIIDC)可執(zhí)行程序響應(yīng)每一個(gè)應(yīng)用程序的請求,就好像輸入設(shè)備正在為該調(diào)用應(yīng)用程序打開一樣。這樣每一個(gè)應(yīng)用程序就可以和該輸入設(shè)備實(shí)例進(jìn)行通信。而不必中斷其它正在和同樣的輸入設(shè)備進(jìn)行通信的應(yīng)用程序。
在一個(gè)實(shí)現(xiàn)中,這個(gè)(MIIDC)可執(zhí)行程序可以是一個(gè)DCOM對象。DCOM也可以作為一個(gè)允許多個(gè)應(yīng)用程序和單一的輸入設(shè)備進(jìn)行通信的接口。這個(gè)DCOM接口處理所有的接口操作,例如載入,執(zhí)行緩沖,卸載以及調(diào)用該可執(zhí)行程序。在基于DCOM的實(shí)現(xiàn)中,這個(gè)MIIDC對象本身就是一個(gè)DCOM服務(wù)器,該MIIDC程序在一個(gè)體現(xiàn)為可執(zhí)行服務(wù)器的DCOM對象中,通過連接到一個(gè)輸入設(shè)備開始工作。隨后,該MIIDC變成了一個(gè)體現(xiàn)為可執(zhí)行程序的DCOM對象,這意味著該MIIDC是一個(gè)進(jìn)程——像任何其他的操作系統(tǒng)(O/S)進(jìn)程一樣——可以被許多應(yīng)用程序共享。通過將一個(gè)輸入設(shè)備訪問程序放入到一個(gè)分立的可執(zhí)行進(jìn)程中,這個(gè)輸入設(shè)備便可以被多個(gè)應(yīng)用程序所共享。在應(yīng)用程序看來,這個(gè)DCOM接口好像正在僅僅為調(diào)用該DCOM對象的應(yīng)用程序打開,但這時(shí),這里只有一個(gè)輸入設(shè)備的實(shí)例。
MIIDC被實(shí)現(xiàn)以便于對于每一個(gè)實(shí)際的輸入設(shè)備,DCOM服務(wù)器建立單一的輸入設(shè)備實(shí)例并且連接到該輸入設(shè)備。當(dāng)一個(gè)應(yīng)用程序和輸入設(shè)備控件一一這是一個(gè)可執(zhí)行的DCOM服務(wù)器——連接后,該DCOM服務(wù)器建立一個(gè)MIIDC實(shí)例(和一個(gè)接口),通過它,該應(yīng)用程序可以和這個(gè)單一輸入設(shè)備實(shí)例通信。這個(gè)單一輸入設(shè)備實(shí)例為每一個(gè)輸入設(shè)備控制實(shí)例提供數(shù)據(jù)輸出,這樣便允許多個(gè)應(yīng)用程序同時(shí)和一個(gè)輸入設(shè)備通信。全局的設(shè)置是專用的(MIIDC)實(shí)例。此外,該輸入設(shè)備實(shí)例被保護(hù)以便使該輸入設(shè)備控制程序的多個(gè)實(shí)例不會執(zhí)行干擾其他實(shí)例處理數(shù)據(jù)的任務(wù)。使用這種新的方法,應(yīng)用程序可以被編寫,而不用考慮其他應(yīng)用程序已經(jīng)使用同樣輸入設(shè)備的可能性。
為了進(jìn)一步了解本發(fā)明的本質(zhì)和優(yōu)點(diǎn),下面將結(jié)合附圖進(jìn)行詳細(xì)的描述。
圖1是顯示用于一個(gè)應(yīng)用程序和一個(gè)攝像機(jī)設(shè)備通信的現(xiàn)有技術(shù)方法的方框圖。
圖2是描述本多例輸入設(shè)備控制程序的一個(gè)實(shí)施例的方框圖。
圖3是關(guān)于一個(gè)應(yīng)用程序和一個(gè)輸入設(shè)備的連接步驟的流程圖。
圖2所示的方框圖顯示了本多例輸入設(shè)備控制程序(MIIDC)的一個(gè)實(shí)施例。在這個(gè)實(shí)施例中,輸入設(shè)備是一個(gè)攝像機(jī),可執(zhí)行程序是一個(gè)DCOM可執(zhí)行服務(wù)器。本圖顯示了多個(gè)應(yīng)用程序如何共享單一的攝像機(jī)。一旦第一個(gè)應(yīng)用程序100呼叫連接攝像機(jī)108,這個(gè)呼叫就被傳送到應(yīng)用程序接口(API)102。微軟公司提供的相關(guān)文件和網(wǎng)站可以用來參考以獲得更多關(guān)于DCOM的詳細(xì)說明。該DCOM API處理DCOM可執(zhí)行程序的調(diào)入并且建立一個(gè)從應(yīng)用程序到DCOM可執(zhí)行程序200的連接。該DCOM服務(wù)器200建立單一的攝像機(jī)實(shí)例106和第一個(gè)MIIDC實(shí)例104,接著,該DCOM服務(wù)器200將這個(gè)單一的攝像機(jī)實(shí)例106連接到相應(yīng)攝像機(jī)的驅(qū)動程序107,將該攝像機(jī)驅(qū)動程序107連接到攝像機(jī)設(shè)備108,并同時(shí)將第一個(gè)MIIDC實(shí)例104連接到這個(gè)單一的攝像機(jī)實(shí)例106。該攝像機(jī)實(shí)例是一個(gè)通向攝像機(jī)設(shè)備108的虛擬接口。一個(gè)實(shí)例是一個(gè)實(shí)際的使用和調(diào)入存儲器的實(shí)體的一份拷貝的虛擬建立。在這個(gè)實(shí)例中,所有的實(shí)例的存儲器在該可執(zhí)行服務(wù)器中分配。最終,連接300被建立,允許客戶程序100和攝像機(jī)設(shè)備108通過這個(gè)新實(shí)例化的DCOM接口(單一攝像機(jī)實(shí)例)進(jìn)行交互。
一旦第二個(gè)應(yīng)用程序11O呼叫連接到該攝像機(jī)108,該DCOM服務(wù)器200就建立第二個(gè)MIIDC實(shí)例114,并將它連接到這個(gè)單一攝像機(jī)實(shí)例106以允許第二個(gè)客戶應(yīng)用程序110和該攝像機(jī)設(shè)備108通過這個(gè)單一的攝像機(jī)實(shí)例106進(jìn)行交互,該交互通過第二個(gè)建立的連接31O。以此類推,隨后的應(yīng)用程序120將通過該DCOM實(shí)例化的接口106用隨后建立的連接320和該攝像機(jī)設(shè)備進(jìn)行交互。
圖3所示的流程圖顯示了圖2所示的過程,一旦一個(gè)客戶應(yīng)用程序呼叫連接到該攝像機(jī)設(shè)備(步驟103),該應(yīng)用程序的呼叫被送到該DCOM API(步驟203),然后,該DCOM API確定是否由DOCM實(shí)現(xiàn)的MIIDC可執(zhí)行程序已被載入,一般地說,第一個(gè)客戶應(yīng)用程序使該MIIDC可執(zhí)行程序被載入。如果該MIIDC可執(zhí)行服務(wù)器沒有被載入,該DCOM API接受這個(gè)呼叫并使該DCOM服務(wù)器載入這個(gè)基于DCOM實(shí)現(xiàn)的MIIDC可執(zhí)行服務(wù)器(步驟403)。隨后,該MIIDC服務(wù)器建立一個(gè)輸入設(shè)備控制實(shí)例(步驟503)。如果該MIIDC可執(zhí)行服務(wù)器已經(jīng)被載入,那么步驟403就沒有必要了,步驟503將跟在步驟303之后。該MIIDC服務(wù)器接著建立單一的攝像機(jī)實(shí)例并且將該實(shí)例連接到該攝像機(jī)設(shè)備,將該輸入設(shè)備控制實(shí)例連接到該單一的攝像機(jī)實(shí)例(步驟603),最后,該MIIDC服務(wù)器建立一個(gè)接口,通過這接口,第一個(gè)客戶應(yīng)用程序和這個(gè)單一的攝像機(jī)實(shí)例進(jìn)行通信(步驟703)。
圖2所示的攝像機(jī)實(shí)例106是一個(gè)和該攝像機(jī)設(shè)備108的接口,用來維護(hù)該輸入設(shè)備控制實(shí)例的狀態(tài)。該輸入設(shè)備實(shí)例106是這樣一塊存儲器,它維護(hù)著有關(guān)已經(jīng)和該攝像機(jī)設(shè)備建立的連接的數(shù)目的必要統(tǒng)計(jì),和這樣的每一個(gè)連接的特定狀態(tài)。該攝像機(jī)設(shè)備同時(shí)集成了必要的邏輯,以確定來自每一個(gè)輸入設(shè)備控制實(shí)例連接的請求的優(yōu)先級,合并請求,和處理請求沖突。
例如,第一個(gè)輸入設(shè)備實(shí)例可能要求具有640*480像素分辨率的射頻數(shù)據(jù)流,而第二個(gè)和第三個(gè)實(shí)例可能分別要求分辨率是320*480像素和160*120像素的射頻數(shù)據(jù)流。在這種情況下,這個(gè)攝影機(jī)實(shí)例將以最高的640*480像素的分辨率采集圖像,然后再將分辨率分別降低到第二個(gè)實(shí)例和第三個(gè)實(shí)例要求的分辨率。遵循同樣的邏輯,如果后來第一個(gè)視頻實(shí)例和攝影機(jī)斷開連接,這個(gè)攝影機(jī)實(shí)例106將分析分別來自第二個(gè)實(shí)例的分辨率是320*480像素的請求和來自第三個(gè)實(shí)例的分辨率是160*120像素的請求,然后以最高的分辨率320*480像素采集圖像以滿足第二個(gè)實(shí)例的要求,然后在將射頻數(shù)據(jù)流的分辨率由320*480降低到160*120以滿足第三個(gè)實(shí)例的要求。
在另一個(gè)涉及三個(gè)輸入設(shè)備控制的實(shí)例中,第一個(gè)輸入設(shè)備控制實(shí)例可能向該虛擬攝像機(jī)設(shè)備發(fā)送一個(gè)移動檢測命令,而其他的兩個(gè)實(shí)例僅僅要求射頻數(shù)據(jù)流。這時(shí),該攝像機(jī)實(shí)例106將以被要求的最高分辨率采集圖像,并向第一個(gè)輸入設(shè)備控制實(shí)例發(fā)送通過移動檢測計(jì)算的射頻數(shù)據(jù)流。
在同樣一個(gè)涉及三個(gè)輸入設(shè)備控制的實(shí)例中,第二個(gè)輸入設(shè)備控制實(shí)例可能要求在視頻圖像上覆蓋一段文本,而其他兩個(gè)實(shí)例則僅僅要求采集射頻數(shù)據(jù)流?,F(xiàn)在,該攝像機(jī)實(shí)例106將以最高的分辨率采集圖像,并且僅僅在流向第二個(gè)輸入設(shè)備請求的射頻數(shù)據(jù)流中添加文本覆蓋。
本發(fā)明同樣可以在不背離本質(zhì)特征的情況下以其它的特殊的形式實(shí)施。例如,該MIIDC可以被實(shí)現(xiàn)為任何其它的可執(zhí)行進(jìn)程,而不是一個(gè)基于DCOM的進(jìn)程;任何其他的接口協(xié)議而不是DCOM接口可以被用來允許多個(gè)應(yīng)用程序和那個(gè)進(jìn)程進(jìn)行通信。這些其他的實(shí)施例將被包括在本發(fā)明的范圍之中,這個(gè)范圍將在下面的權(quán)利要求中確定。
權(quán)利要求
1.一個(gè)允許多個(gè)客戶應(yīng)用程序同時(shí)和單一的輸入設(shè)備進(jìn)行通信的輸入設(shè)備控制程序,其中,所說的輸入設(shè)備控制程序被作為一個(gè)進(jìn)程載入,所有后續(xù)的應(yīng)用程序呼叫該進(jìn)程以和所說的這個(gè)單一的輸入設(shè)備建立通信。
2.按照權(quán)利要求1中所說的輸入設(shè)備控制程序,其中所說的輸入設(shè)備控制程序包括實(shí)現(xiàn)以下功能的子程序a)視頻控制方法,包括ⅰ)初始化一個(gè)視頻控制;ⅱ)采集靜態(tài)數(shù)字圖像;ⅲ)記錄數(shù)字視頻圖像;ⅳ)獲取視頻驅(qū)動程序的信息;ⅴ)設(shè)置攝像機(jī)屬性;ⅵ)獲取攝像機(jī)屬性;b)攝像機(jī)事件通知,包括ⅰ)移動檢測通知;ⅱ)可視音頻(AVT)錯(cuò)誤通知;ⅲ)攝像機(jī)分離通知;ⅳ)攝像機(jī)重新連接通知。
3.按照權(quán)利要求1中所說的輸入設(shè)備控制程序,其中所說的用于處理所有通信協(xié)議細(xì)節(jié)過程包括a)載入上述的輸入設(shè)備控制程序;b)用相關(guān)的輸入/輸出數(shù)據(jù)調(diào)用上述的輸入設(shè)備控制程序;c)緩沖從上述的輸入設(shè)備控制程序輸出的和向該程序輸入的數(shù)據(jù);d)執(zhí)行上述的輸入設(shè)備控制程序;e)卸載上述的輸入設(shè)備控制程序。
4.一個(gè)允許多個(gè)客戶應(yīng)用程序同時(shí)和單一的輸入設(shè)備進(jìn)行通信的輸入設(shè)備控制程序,其中所說的輸入設(shè)備控制程序響應(yīng)于要求與上述的輸入設(shè)備建立第一個(gè)連接的第一個(gè)應(yīng)用程序ⅰ)傳送上述的第一個(gè)應(yīng)用程序的呼叫到一個(gè)進(jìn)程的應(yīng)用程序接口(API);ⅱ)使上述的進(jìn)程的網(wǎng)絡(luò)協(xié)議將上述可執(zhí)行的輸入設(shè)備控制程序載入到一個(gè)進(jìn)程服務(wù)器中;ⅲ)使上述的進(jìn)程服務(wù)器建立單一的輸入設(shè)備實(shí)例并連接這個(gè)單一的輸入設(shè)備實(shí)例到上述的輸入設(shè)備;ⅳ)使上述的進(jìn)程服務(wù)器建立第一個(gè)輸入設(shè)備控制實(shí)例并且連接該第一個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例;ⅴ)使上述的進(jìn)程服務(wù)器建立一個(gè)接口,通過它,上述的客戶應(yīng)用程序和上述的單一的輸入設(shè)備實(shí)例進(jìn)行通信;ⅵ)響應(yīng)來自第二個(gè)應(yīng)用程序的要求與上述的單一的輸入設(shè)備實(shí)例建立第二個(gè)連接的呼叫,建立第二個(gè)輸入設(shè)備控制實(shí)例,并連接上述的第二個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例以允許上述的第二個(gè)應(yīng)用程序和上述的同一個(gè)單一的輸入設(shè)備實(shí)例進(jìn)行通信。
5.按照權(quán)利要求4中所說的輸入設(shè)備程序,其中所說的輸入設(shè)備控制程序是一個(gè)分布組件對象模型(DCOM)可執(zhí)行程序,包括實(shí)現(xiàn)以下功能的子程序a)視頻控制方法包括ⅰ)初始化一個(gè)視頻控制;ⅱ)采集靜態(tài)數(shù)字圖像;ⅲ)記錄數(shù)字視頻圖像;ⅳ)獲取視頻驅(qū)動程序的信息;ⅴ)設(shè)置攝像機(jī)屬性;和ⅵ)獲取攝像機(jī)屬性;b)攝像機(jī)事件通知包括ⅰ)移動檢測通知;ⅱ)可視音頻(AVT)錯(cuò)誤通知;ⅲ)攝像機(jī)分離通知;和ⅳ)攝像機(jī)重新連接通知。
6.按照權(quán)利要求4中所說的輸入設(shè)備控制程序,其中所說的進(jìn)程是一個(gè)分布組件對象模型(DCOM)可執(zhí)行程序。
7.一個(gè)允許多個(gè)客戶應(yīng)用程序同時(shí)和單一的輸入設(shè)備進(jìn)行通信的分布組件對象模型(DCOM)可執(zhí)行輸入設(shè)備控制程序,其中所說的程序響應(yīng)于要求與上述的輸入設(shè)備建立第一個(gè)連接的第一個(gè)應(yīng)用程序ⅰ)傳送上述的第一個(gè)應(yīng)用程序的呼叫到一個(gè)DCOM應(yīng)用程序接口(API);ⅱ)使上述的DCOM網(wǎng)絡(luò)協(xié)議將上述可執(zhí)行的輸入設(shè)備控制程序載入到一個(gè)DCOM服務(wù)器中;ⅲ)使上述的DCOM服務(wù)器建立單一的輸入設(shè)備實(shí)例并連接這個(gè)單一的輸入設(shè)備實(shí)例到上述的輸入設(shè)備;ⅳ)使上述的DCOM服務(wù)器建立第一個(gè)輸入設(shè)備控制實(shí)例并且連接這個(gè)第一個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例;ⅴ)使上述的DCOM服務(wù)器建立一個(gè)接口,通過它,上述的客戶應(yīng)用程序和上述的單一的輸入設(shè)備實(shí)例進(jìn)行通信;ⅵ)響應(yīng)來自第二個(gè)應(yīng)用程序的要求與上述的單一的輸入設(shè)備實(shí)例建立第二個(gè)連接的呼叫,建立第二個(gè)輸入設(shè)備控制實(shí)例,并連接上述的第二個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例以允許上述的第二個(gè)應(yīng)用程序和上述的同一個(gè)單一的輸入設(shè)備實(shí)例進(jìn)行通信。
8.一種實(shí)現(xiàn)多個(gè)客戶應(yīng)用程序和單一的輸入設(shè)備進(jìn)行通信的方法,該方法包括ⅰ)傳送第一個(gè)應(yīng)用程序的呼叫到一個(gè)進(jìn)程的應(yīng)用程序接口(API);ⅱ)使上述的進(jìn)程的網(wǎng)絡(luò)協(xié)議將上述可執(zhí)行的輸入設(shè)備控制程序載入到一個(gè)進(jìn)程服務(wù)器中;ⅲ)使上述的進(jìn)程服務(wù)器建立單一的輸入設(shè)備實(shí)例并連接這個(gè)單一的輸入設(shè)備實(shí)例到上述的輸入設(shè)備;ⅳ)使上述的進(jìn)程服務(wù)器建立第一個(gè)輸入設(shè)備控制實(shí)例并且連接該第一個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例;ⅴ)使上述的進(jìn)程服務(wù)器建立一個(gè)接口,通過它,上述的客戶應(yīng)用程序和上述的單一的輸入設(shè)備實(shí)例進(jìn)行通信;ⅵ)響應(yīng)來自第二個(gè)應(yīng)用程序的要求與上述的單一的輸入設(shè)備實(shí)例建立第二個(gè)連接的呼叫,建立第二個(gè)輸入設(shè)備控制實(shí)例,并連接上述的第二個(gè)輸入設(shè)備控制實(shí)例到上述的單一的輸入設(shè)備實(shí)例以允許上述的第二個(gè)應(yīng)用程序和上述的同一個(gè)單一的輸入設(shè)備實(shí)例進(jìn)行通信。
9.按照權(quán)利要求8中的方法,其中所說的可執(zhí)行輸入設(shè)備控制程序是一個(gè)分布組件對象模型(DCOM)可執(zhí)行程序。
10.按照權(quán)利要求8中的方法,其中所說進(jìn)程是一個(gè)DCOM進(jìn)程。
全文摘要
一個(gè)可執(zhí)行的應(yīng)用程序,該程序?qū)崿F(xiàn)為一個(gè)允許多個(gè)應(yīng)用程序和一個(gè)單一的輸入設(shè)備進(jìn)行通信的進(jìn)程。上述這些通過將該輸入設(shè)備控制程序作為一個(gè)進(jìn)程載入存儲器來實(shí)現(xiàn)。因此這個(gè)可執(zhí)行程序是一個(gè)允許多個(gè)應(yīng)用程序和同一個(gè)輸入設(shè)備接口的服務(wù)器。該多例輸入設(shè)備控制可執(zhí)行程序響應(yīng)任何一應(yīng)用程序的請求,如同輸入設(shè)備正在為該調(diào)用應(yīng)用程序打開一樣。每個(gè)應(yīng)用程序可以和該輸入設(shè)備實(shí)例通信,而不會中斷其它正在和同一輸入設(shè)備通信的應(yīng)用程序。
文檔編號G06F13/12GK1312503SQ0012069
公開日2001年9月12日 申請日期2000年11月10日 優(yōu)先權(quán)日1999年11月10日
發(fā)明者蒂莫西·D·迪克曼, 阿龍·D·斯坦立奇 申請人:羅技電子股份有限公司