• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ONVIF的客戶端事件處理接口的設(shè)計(jì)與實(shí)現(xiàn)

      2016-10-17 09:05:16蘇凱雄李芳芳
      電視技術(shù) 2016年9期
      關(guān)鍵詞:線程調(diào)用攝像頭

      鄧 凱,蘇凱雄,李芳芳

      (福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350100)

      ?

      基于ONVIF的客戶端事件處理接口的設(shè)計(jì)與實(shí)現(xiàn)

      鄧凱,蘇凱雄,李芳芳

      (福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350100)

      在對(duì)ONVIF協(xié)議深入分析研究的基礎(chǔ)上,使用gsoap和VS2008等工具設(shè)計(jì)了一個(gè)高效的ONVIF事件處理庫(kù),集成了通用的ONVIF事件處理接口。ONVIF事件處理庫(kù)中的接口被設(shè)計(jì)成自啟線程的模式,對(duì)用戶屏蔽了底層ONVIF協(xié)議的實(shí)現(xiàn)過(guò)程,允許用戶設(shè)計(jì)自己的事件響應(yīng)方法,同時(shí)具有完備的錯(cuò)誤處理機(jī)制,能夠快速方便地被頂層應(yīng)用程序調(diào)用。ONVIF事件處理庫(kù)具有自身的獨(dú)立性,不依賴于某個(gè)工程,可以被不同的工程快速集成和調(diào)用。

      ONVIF;視頻監(jiān)控;告警;事件處理接口;線程

      隨著網(wǎng)絡(luò)視頻監(jiān)控市場(chǎng)規(guī)模的擴(kuò)大,各種品牌型號(hào)的網(wǎng)絡(luò)攝像機(jī)紛紛涌入市場(chǎng),推動(dòng)了視頻監(jiān)控應(yīng)用領(lǐng)域的迅速擴(kuò)展。但由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),各個(gè)廠商各自為營(yíng),按照各自的協(xié)議開(kāi)發(fā)產(chǎn)品,并捆綁銷售各自軟硬件,從而導(dǎo)致了不同產(chǎn)品之間互不兼容,限制了視頻監(jiān)控系統(tǒng)的互聯(lián)互通與規(guī)模應(yīng)用[1]。為了打破這種局面,2008年5月,安訊士、博世和索尼三方宣布共同發(fā)起成立了一個(gè)國(guó)際開(kāi)放型網(wǎng)絡(luò)視頻接口論壇,取名為ONVIF(Open Network Video Interface Forum),其目標(biāo)是在世界范圍內(nèi)推動(dòng)不同廠商視頻監(jiān)控產(chǎn)品的相互兼容。時(shí)至今日,ONVIF已經(jīng)擁有500多家會(huì)員。國(guó)內(nèi)攝像頭廠商??低暫痛笕A也已加入ONVIF,作為ONVIF會(huì)員,其產(chǎn)品完全支持ONVIF協(xié)議,同時(shí)具有多種事件處理功能。

      盡管兼容ONVIF協(xié)議的網(wǎng)絡(luò)攝像頭越來(lái)越多,但目前沒(méi)有統(tǒng)一的專為ONVIF協(xié)議設(shè)計(jì)的客戶端軟件。各個(gè)廠商在設(shè)計(jì)自己的客戶端軟件時(shí),雖然集成了ONVIF功能來(lái)支持自己的攝像頭,但不可分離、不可復(fù)用。而國(guó)內(nèi)外的許多文獻(xiàn)雖然研究了ONVIF協(xié)議,也有提出庫(kù)的思想,但是針對(duì)事件處理的研究較少,更沒(méi)有具體的框架方案?;谏鲜鰻顩r,本文設(shè)計(jì)了一個(gè)通用的ONVIF協(xié)議事件處理庫(kù),并對(duì)用戶屏蔽了底層ONVIF協(xié)議的處理過(guò)程,使得用戶只需要將這個(gè)事件處理庫(kù)添加到自己的工程中,并在工作函數(shù)中設(shè)計(jì)自己的事件響應(yīng)方法,就可以調(diào)用事件處理庫(kù)中的接口自動(dòng)響應(yīng)發(fā)生的事件。在這個(gè)過(guò)程中,用戶無(wú)需關(guān)心底層的處理機(jī)制,只需要提供攝像頭的地址,賬號(hào)和密碼以及自己設(shè)計(jì)的事件響應(yīng)方法即可。

      1 ONVIF事件處理機(jī)制分析

      ONVIF將所有的設(shè)備功能定義為Web服務(wù),使用基于XML的WSDL語(yǔ)言來(lái)描述這些服務(wù),使用SOAP協(xié)議和HTTP協(xié)議來(lái)進(jìn)行信息交互[2]。ONVIF協(xié)議實(shí)現(xiàn)機(jī)制是:ONVIF客戶端根據(jù)WSDL描述文件將請(qǐng)求封裝為SOAP消息,通過(guò)HTTP發(fā)送到包含對(duì)應(yīng)Web Services的Web服務(wù)器上;Web Services解析SOAP請(qǐng)求并通過(guò)HTTP回復(fù)客戶端;客戶端解析SOAP,提取應(yīng)答信息[3]。

      ONVIF很大程度上支持現(xiàn)有的標(biāo)準(zhǔn),因?yàn)樗哪繕?biāo)是實(shí)現(xiàn)不同產(chǎn)品的互通性,而不是定義全新的標(biāo)準(zhǔn)[4]。其事件處理就使用了OASIS的WS-BaseNotification和WS-Topics規(guī)范[2,5]。WS-BaseNotification規(guī)范著重于訂閱和通知操作,規(guī)范了信息交互過(guò)程中的術(shù)語(yǔ)、概念、操作和交互語(yǔ)言的格式等,定義了生產(chǎn)者和消費(fèi)者的角色[6]。WS-Topics規(guī)范定義了主題的概念來(lái)對(duì)事件進(jìn)行組織和分類,并定義了對(duì)事件進(jìn)行篩選的語(yǔ)法和表達(dá)式[7]。

      根據(jù)WS-BaseNotification規(guī)范,ONVIF的事件處理機(jī)制定義了三種角色,即客戶端、事件服務(wù)器和訂閱管理器。ONVIF為他們之間的交互定義了兩種方式,第一種是監(jiān)聽(tīng)阻塞方式,第二種是實(shí)時(shí)Pull-Point方式[8]。第二種方式的實(shí)時(shí)性不如第一種,但具有防火墻友好通知的優(yōu)勢(shì),當(dāng)事件服務(wù)器和客戶端不在同一個(gè)網(wǎng)絡(luò)內(nèi)時(shí),解決了事件服務(wù)器向客戶端發(fā)送通知被防火墻攔截的問(wèn)題。本文采用實(shí)時(shí)Pull-Point方式,交互過(guò)程如圖1所示。

      圖1 Pull-Point交互過(guò)程

      2 接口設(shè)計(jì)與實(shí)現(xiàn)

      ONVIF使用的SOAP協(xié)議是用于信息交互的一種輕量級(jí)協(xié)議[9]??蛻舳伺c服務(wù)器的交互信息最終需要按照SOAP協(xié)議進(jìn)行結(jié)構(gòu)化填充。根據(jù)WSDL文檔進(jìn)行ONVIF協(xié)議的開(kāi)發(fā)可以有兩種方法:第一種是手動(dòng)的根據(jù)WSDL文檔進(jìn)行SOAP協(xié)議的封裝和解析,第二種是通過(guò)第三方工具對(duì)WSDL進(jìn)行自動(dòng)解析編譯,提供自動(dòng)封裝和解析SOAP協(xié)議的接口。對(duì)WSDL進(jìn)行解析的第三方工具有很多,例如gsoap,Apache Axis2/C,WSF/C和Staff等。綜合對(duì)比,gsoap具有更優(yōu)秀的能力,能夠最大化的屏蔽底層通信協(xié)議的封裝和解析,提供優(yōu)良的接口,簡(jiǎn)化開(kāi)發(fā)過(guò)程[10]。本文使用gsoap2.8.19作為開(kāi)發(fā)工具。

      2.1框架代碼的生成

      ONVIF的大多數(shù)功能都需要進(jìn)行鑒權(quán),即在soap消息的header部分添加WS-Security標(biāo)簽。在ONVIF核心規(guī)范中,鑒權(quán)屬于設(shè)備管理服務(wù)下的安全部分,有關(guān)鑒權(quán)的接口被定義在devicemgmt.wsdl中,事件處理服務(wù)的相關(guān)接口被定義在event.wsdl中[8]。

      使用gsoap的wsdl2h.exe工具將event.wsdl和devicemgmt.wsdl編譯成中間頭文件,然后在頭文件中添加#import "wsse.h",打開(kāi)鑒權(quán)功能后再使用soapcpp2.exe生成框架代碼。Event開(kāi)發(fā)的相關(guān)接口在soapStub.h中聲明,在soapClient.cpp中實(shí)現(xiàn)。根據(jù)實(shí)時(shí)Pull-Point方式的交互過(guò)程,開(kāi)發(fā)中實(shí)際用到的基本接口有:GetCapabilities用于判斷攝像頭是否支持事件處理功能,CreatePullPointSubscription,PullMessages和Unsubscribe用于事件的訂閱、獲取和注銷,UsernameTokenDigest用于鑒權(quán),new,delete和destroy等用于對(duì)象的實(shí)例化和銷毀。本文使用VS2008創(chuàng)建一個(gè)動(dòng)態(tài)鏈接庫(kù)工程,將生成的基本接口文件以及鑒權(quán)相關(guān)文件和其他所需文件(例如跟soap接口相關(guān)的stdsoap2.h和stdsoap2.cpp等)添加到工程中,并以此為基礎(chǔ),對(duì)基本接口進(jìn)行合理的規(guī)劃和封裝,創(chuàng)建面向用戶的簡(jiǎn)潔接口,以庫(kù)的形式提供給用戶使用。

      2.2接口的總體設(shè)計(jì)

      基本接口通過(guò)封裝成類的方式對(duì)用戶進(jìn)行屏蔽,方便用戶的操作。在封裝的過(guò)程中對(duì)返回的錯(cuò)誤信息進(jìn)行了處理,并向上層報(bào)告。event類成員函數(shù)設(shè)計(jì)如下:

      public:

      event ():構(gòu)造函數(shù),封裝了各種基本的new接口;

      ~event ():析構(gòu)函數(shù),封裝了各種基本的delete和destroy等接口;

      InitUserToken():初始化用戶名和密碼;

      InitDeviceReference():初始化網(wǎng)絡(luò)攝像頭服務(wù)入口地址;

      GetDeviceEventCapability():封裝基本接口GetCapabilities,判斷是否支持事件處理功能[11];

      InitCallbackFunc():初始化用戶回調(diào)函數(shù);

      RenewCallbackFunc():更新用戶回調(diào)函數(shù);

      Start():?jiǎn)?dòng)事件處理服務(wù);

      private:

      mCreatPullPointSubscription():封裝基本接口CreatePullPointSubscription,創(chuàng)建訂閱管理器;

      mPullMessages():封裝基本接口PullMessages,獲取事件通知;

      mThreadFunc():事件處理服務(wù)線程方法函數(shù);

      mDestroyPullPointSubscription():封裝基本接口Unsubscribe,注銷訂閱管理器。

      Start()是事件處理服務(wù)面向用戶的核心部分,封裝了事件處理服務(wù)線程的創(chuàng)建,線程方法函數(shù)為ThreadFunc()。在ThreadFunc()中會(huì)調(diào)用一次mCreatPullPointSubscription()接口,向網(wǎng)絡(luò)攝像頭中的服務(wù)器申請(qǐng)創(chuàng)建訂閱管理器,之后不停地調(diào)用mPullMessages()接口請(qǐng)求并處理事件通知。mPullMessages()是事件處理服務(wù)面向ONVIF協(xié)議的底層核心部分,以函數(shù)指針的形式關(guān)聯(lián)用戶的事件處理方法。經(jīng)過(guò)一系列的初始化后,用戶只需調(diào)用Start()即可開(kāi)啟獨(dú)立線程開(kāi)始事件處理服務(wù),而不需理解底層事件處理的具體流程和操作。用戶唯一需要關(guān)心的就是編寫自己的事件處理方法,通過(guò)InitCallbackFunc()接口將其入口地址告知事件處理服務(wù)線程,同時(shí)可以在任何時(shí)候通過(guò)RenewCallbackFunc()更換事件處理方法。事件處理服務(wù)頂層工作流程如圖2所示,Strat()調(diào)用底層接口的過(guò)程如圖3所示。

      圖2 事件處理服務(wù)頂層工作機(jī)制

      圖3 Strat()內(nèi)部機(jī)制

      2.3ThreadFunc()線程方法函數(shù)的設(shè)計(jì)

      由于本文使用實(shí)時(shí)Pull-Point方式,所以在線程中需要將mPullMessages()放到while循環(huán)里,連續(xù)并主動(dòng)地去獲取事件通知并進(jìn)行處理。這就需要考慮線程的退出問(wèn)題。雖然Windows提供了一些終止線程的方法,例如ExitThread()和TerminateThread (),但這些方法都有內(nèi)存泄露和死鎖等風(fēng)險(xiǎn)。線程的最佳停止方法就是能夠自行退出,而不是簡(jiǎn)單地使用ExitThread()或TerminateThread ()等來(lái)強(qiáng)行終止線程。本文根據(jù)實(shí)際應(yīng)用情況,使用了一個(gè)事件對(duì)象,在while循環(huán)體中,每次調(diào)用mPullMessages()后,對(duì)這個(gè)事件對(duì)象進(jìn)行超時(shí)等待。而事件的觸發(fā)位于類的析構(gòu)函數(shù)中,當(dāng)該類的對(duì)象完成任務(wù)被析構(gòu)時(shí),就會(huì)觸發(fā)該事件使線程正常退出。

      2.4mPullMessages()的設(shè)計(jì)

      mPullMessages()作為底層最核心的部分,決定了整個(gè)事件處理服務(wù)的框架和方法。mPullMessages()的主要功能是獲取并分析網(wǎng)絡(luò)攝像頭發(fā)生的事件,并通過(guò)回調(diào)函數(shù)實(shí)現(xiàn)用戶的響應(yīng)方法。網(wǎng)絡(luò)攝像頭的異常事件有很多,例如移動(dòng)、遮擋、越界、區(qū)域切換、外部IO觸發(fā)和硬盤滿等異常事件。這些事件可以通過(guò)主題和內(nèi)容進(jìn)行區(qū)分。CreatPullPointSubscription基本接口的請(qǐng)求參數(shù)列表中有一個(gè)Filter參數(shù),根據(jù)主題填充該參數(shù)可以向事件服務(wù)器訂閱專一的消息。例如,可以專門訂閱移動(dòng)偵測(cè)或者遮擋偵測(cè),這樣當(dāng)各自的訂閱管理器返回事件通知時(shí),不必判斷是哪一種事件就可以迅速作出處理。同樣,可以訂閱所有事件,然后對(duì)訂閱管理器返回的事件類型進(jìn)行判斷后再做對(duì)應(yīng)的處理。根據(jù)不同主題訂閱專門的事件通知在實(shí)時(shí)性上占有很大的優(yōu)勢(shì),但這種優(yōu)勢(shì)是體現(xiàn)在創(chuàng)建多線程的基礎(chǔ)上。而多線程帶來(lái)的是程序和資源分配的復(fù)雜性上升。對(duì)于實(shí)時(shí)性要求不是很高的場(chǎng)合,可以通過(guò)訂閱所有事件,然后通過(guò)分析事件類型的方法來(lái)進(jìn)行處理。本文實(shí)現(xiàn)的移動(dòng)偵測(cè)和遮擋偵測(cè)在民用領(lǐng)域的實(shí)時(shí)性要求不是很高,有1 s左右的延時(shí)完全不影響結(jié)果,故采用訂閱所有事件的方法。

      mPullMessages()通過(guò)調(diào)用基本接口PullMessages向訂閱管理器請(qǐng)求獲取事件通知,然后根據(jù)返回的信息判斷屬于哪種類型的事件。根據(jù)??低暫痛笕A的網(wǎng)絡(luò)攝像頭返回結(jié)果,本文在Event類中定義Motion="tns1:RuleEngine/CellMotionDetector/Motion"和Tamper="tns1:RuleEngine/TamperDetector/Tamper"兩個(gè)字符串常量,用于匹配移動(dòng)偵測(cè)和遮擋偵測(cè)。

      Event類中通過(guò)定義一個(gè)函數(shù)指針EventCallbackFunc來(lái)允許用戶設(shè)計(jì)自己的事件響應(yīng)方法。用戶通過(guò)InitCallbackFunc()接口將自己的處理函數(shù)入口地址賦給EventCallbackFunc。mPullMessages()在分析判斷出PullMessage基本接口的返回結(jié)果后,通過(guò)函數(shù)指針來(lái)調(diào)用用戶的處理函數(shù)。這樣在設(shè)計(jì)事件處理接口時(shí)不必考慮事件發(fā)生時(shí)該怎么處理,使得事件處理能夠獨(dú)立于頂層應(yīng)用開(kāi)發(fā)工程,而不與用戶行為耦合在一起。Event類中還設(shè)計(jì)了一個(gè)RenewCallbackFunc()方法用于用戶在事件處理過(guò)程中更換處理方法,同時(shí)mPullMessages()中對(duì)函數(shù)指針的調(diào)用進(jìn)行加鎖保護(hù),為用戶帶來(lái)了極大的方便。mPullMessages()內(nèi)部處理流程如圖4所示。

      圖4 mPullMessages()內(nèi)部機(jī)制

      3 測(cè)試結(jié)果

      由于海康威視和大華是國(guó)內(nèi)權(quán)威的ONVIF攝像頭廠商,所以使用??低旸S-2CD3Q10FD-IW、DS-2CD3210D-I3和大華dh-ipc-kw12w-ce攝像頭進(jìn)行測(cè)試,開(kāi)啟攝像頭的移動(dòng)偵測(cè)功能和遮擋偵測(cè)功能。使用VS2008創(chuàng)建一個(gè)控制臺(tái)應(yīng)用工程,在工程中導(dǎo)入生成的庫(kù)和類的頭文件聲明后,設(shè)計(jì)用戶處理函數(shù)為Func1和Func2。在main函數(shù)中首先實(shí)例化一個(gè)event對(duì)象,接著依次調(diào)用InitUserToken()和InitDeviceReference()初始化用戶名、密碼和攝像頭服務(wù)入口地址。然后調(diào)用GetDeviceEventCapability()判斷攝像頭是否支持事件處理,若支持則調(diào)用InitCallbackFunc(),初始化用戶函數(shù)為Func1,最后調(diào)用Start()。啟動(dòng)程序后,當(dāng)用硬紙板在攝像頭前晃動(dòng)時(shí),迅速回顯Func1的Motion字符串,如圖5和圖6所示;當(dāng)用硬紙板擋在攝像頭上時(shí),迅速回顯Func1的Tamper字符串,同時(shí)因?yàn)橛幸苿?dòng),所以也會(huì)回顯Func1的Motion字符串,如圖7和圖8所示。當(dāng)調(diào)用RenewCallbackFunc()切換用戶函數(shù)為Func2時(shí),迅速回顯Func2的相關(guān)字符串,如圖9所示。每一次偵測(cè)到移動(dòng)或者遮擋都會(huì)返回七八條事件通知。在測(cè)試過(guò)程中,每次回顯間隔1 s左右,符合程序中設(shè)計(jì)的延時(shí)。

      圖5 移動(dòng)(截圖)

      圖6 移動(dòng)回顯(截圖)

      圖7 遮擋(截圖)

      圖8 遮擋回顯(截圖)

      圖9 用戶函數(shù)切換回顯(截圖)

      4 結(jié)束語(yǔ)

      本文論述了基于ONVIF協(xié)議的事件處理接口的設(shè)計(jì)和實(shí)現(xiàn)方法。通過(guò)使用訂閱所有事件分析返回結(jié)果判斷事件類型的方法,實(shí)現(xiàn)了移動(dòng)偵測(cè)和遮擋偵測(cè)。在工程中導(dǎo)入事件處理庫(kù)和必要的聲明文件后,用戶只需要專注地設(shè)計(jì)自己的事件處理函數(shù),然后經(jīng)過(guò)非常簡(jiǎn)單的初始化和判斷,就能調(diào)用Start()接口進(jìn)行事件的偵測(cè)處理。這種事件處理庫(kù)的設(shè)計(jì)模式不僅向用戶屏蔽了ONVIF底層的處理過(guò)程,并且與用戶行為高度分離,大大簡(jiǎn)化了應(yīng)用程序的開(kāi)發(fā)過(guò)程,縮短了開(kāi)發(fā)周期。

      [1]陳少尉,蔡?hào)|升,黃琦,等.基于ONVIF協(xié)議的變電站網(wǎng)絡(luò)攝像機(jī)測(cè)試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電測(cè)與儀表,2014,51(16):117-123.

      [2]李校林,肖路歡,何策.基于ONVIF協(xié)議的NVR系統(tǒng)中網(wǎng)絡(luò)視頻接口的設(shè)計(jì)[J].電視技術(shù),2014,38(11):166-169.

      [3]文凱,張潤(rùn).基于ONVIF的網(wǎng)絡(luò)視頻監(jiān)控告警系統(tǒng)的實(shí)現(xiàn)[J].電視技術(shù),2014,38(21):90-93.

      [4]馬宇昌,沈蘇彬,歐陽(yáng)志友.基于ONVIF標(biāo)準(zhǔn)的設(shè)備發(fā)現(xiàn)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013 (11):224-228.

      [5]黃方靖.ONVIF協(xié)議在IPCam系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2015,38(5):139-142.

      [6]OASIS.Web services base notification 1.3 [EB/OL].[2015-10-16].http://docs.oasis-open.org/wsn.

      [7]OASIS.Web services topics 1.3 [EB/OL].[2015-10-16].http://docs.oasis-open.org/wsn.

      [8]ONVIF.ONVIF core specification ver2.6[EB/OL].[2015-10-16].http://www.onvif.org/specs/DocMap-2.6.html.

      [9]W3C.SOAP version 1.2 part 1: messaging framework (second edition)[EB/OL].[2015-10-16].http://www.w3.org/TR/soap12-part1.

      [10]LOPES S F,SILVA S,MENDES J,et al.Development of a library for clients of ONVIF video cameras: challenges and solutions [C]//2013 IEEE International Conference on Industrial Technology.[S.l.]:IEEE,2013:1260-1266.

      [11]朱耀麟,李倩,王昊星.ONVIF協(xié)議的網(wǎng)絡(luò)視頻監(jiān)控客戶端接口研究[J].西北大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,44(3):392-396.

      責(zé)任編輯:閆雯雯

      Design and implementation of event handing interfaces for clients based on ONVIF protocol

      DENG Kai,SU Kaixiong,LI Fangfang

      (CollegeofPhysicsandInformationEngineering,F(xiàn)uzhouUniversity,F(xiàn)uzhou350100,China)

      On the basis of in-depth analysis and research to ONVIF protocol, using tools such as gsoap and VS2008 designed an efficient ONVIF event handing library, integrating general ONVIF event handling interfaces. These interfaces in ONVIF event handing library are designed to start threads automatically, hide underlying ONVIF protocol implementation process from the user and allow users design themselves event response functions. These interfaces have complete error handling mechanism and can be called by the top application quickly and easily. This ONVIF event handing library is independent and doesn’t rely on a certain project. So it can be integrated and called by different projects rapidly.

      ONVIF; video surveillance; alarm; event handing interface; thread

      TN915

      A

      10.16280/j.videoe.2016.09.026

      福建省產(chǎn)學(xué)重大項(xiàng)目(2015H6014);福建省發(fā)改委科技創(chuàng)新項(xiàng)目(閩發(fā)改投資【2014】168號(hào))

      2015-11-16

      文獻(xiàn)引用格式:鄧凱,蘇凱雄,李芳芳. 基于ONVIF的客戶端事件處理接口的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2016,40(9):127-131.

      DENG K,SU K X,LI F F. Design and implementation of event handing interfaces for clients based on ONVIF protocol[J]. Video engineering,2016,40(9):127-131.

      猜你喜歡
      線程調(diào)用攝像頭
      浙江首試公路非現(xiàn)場(chǎng)執(zhí)法新型攝像頭
      攝像頭連接器可提供360°視角圖像
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      淺談linux多線程協(xié)作
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      奔馳360°攝像頭系統(tǒng)介紹
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      Linux線程實(shí)現(xiàn)技術(shù)研究
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      观塘区| 广州市| 胶南市| 漾濞| 乌审旗| 临沭县| 鹤壁市| 迁西县| 桃园县| 南汇区| 定边县| 宁陵县| 南漳县| 金沙县| 正安县| 法库县| 隆子县| 宜兰县| 象山县| 游戏| 玛曲县| 原平市| 隆昌县| 三都| 崇明县| 南江县| 息烽县| 安阳县| 延川县| 监利县| 塔河县| 林州市| 新民市| 区。| 贞丰县| 保亭| 普兰店市| 洪洞县| 积石山| 来凤县| 鱼台县|