999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python與海康SDK的工業設備視頻監控系統開發

2021-01-04 01:47:55
科學與信息化 2021年1期
關鍵詞:用戶設備方法

丹東東方測控技術股份有限公司 遼寧 丹東 118000

前言

海康威視的監控產品在工業企業內應用十分廣泛,如何利用海康威視產品實現專有定制化視頻監控系統是十分有意義的。Python語言易學易用,簡單高效,但目前海康官方還未提供Python版SDK。本文介紹了在Windows系統下Python編程環境中,結合海康威視SDK設計和開發工業設備實時視頻監控軟件的方法。

(1)Python簡介。Python是一種跨平臺的計算機程序設計語言。無論是桌面開發序、Web開發、人工智能、自動化運維、科學運算,Python都有著豐富的擴展模塊,使用Python開發應用程序,無疑是高效的。

(2)海康SDK。海康威視SDK即海康提供的開發包,主要包含設備網絡SDK和播放庫SDK(以下簡稱SDK)。海康威視設備網絡SDK是基于設備私有網絡通信協議開發的,為嵌入式網絡硬盤錄像機、網絡攝像機等網絡產品服務的配套模塊,提供Windows和Linux兩個版本,用于遠程訪問和控制設備軟件的二次開發[1]。

1 開發方法

1.1 Ctypes模塊簡介

模塊Ctypes是Python內建的用于調用動態鏈接庫函數的功能模塊,一定程度上可以用于Python與其他語言的混合編程,可以說Ctypes模塊是Python應用程序與SDK之間的橋梁。

1.2 DLL裝載

DLL(動態鏈接庫)是Dynamic Link Library的縮寫,在Windows下Python環境中使用ctypes.windll.loadLibrary()函數進行DLL的裝載。本例中海康SDK的DLL載入方法為:sdk=windll.LoadLibrary("HCNetSDK.dll")。

1.3 數據類型

Ctypes提供和c語言兼容的數據類型,可以很方便地調用DLL中的函數。如Ctypes中的cbyte對應c語言中的char及Python中的int/long。

海康SDK頭文件中包含了大量的結構體,在Python中,結構體必須繼承自Ctypes模塊的Structure類。每個子類必須定義_fields_屬性,該屬性是2元素元組的列表,包含字段名和字段類型,其中字段類型必須是Ctypes類型。

1.4 宏定義

在海康SDK頭文件中存在大量的宏定義,在Python中可用全局變量來實現。如云臺控制:TILT_UP=21,TILT_DOWN=22。

1.5 回調函數的定義

回調函數是一個通過函數指針調用的函數。回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用,用于對該事件或條件進行響應。如回調函數的原型為:CMPFUNC=CFUNCTYPE(c_int,POINTER(c_int),POINTER(c_int)),第一個參數c_int表示函數返回值是int類型。

2 接口調用方法

海康SDK調用流程通常為:初始化SDK,用戶登錄,預覽、云臺控制等操作,注銷設備,釋放SDK資源。

2.1 初始化SDK

初始化函數用于完成初始內存分配等工作,Python中調用方法為sdk.NET_DVR_Init()。

2.2 用戶登錄

用戶登錄實現用戶的注冊功能,返回用戶ID,該用戶ID具有唯一性,后續對設備的操作都需要通過此ID實現。Python調用方法為,sdk.NET_DVR_Login_V30(sDVRIP,wDVRPort,sUserName,sPassword,Ctypes.byref(DeviceInfo)),byref()用來傳遞引用參數,DeviceInfo為設備信息結構體,繼承至Ctypes.Structure。

2.3 視頻預覽

視頻預覽模塊實現從網絡設備取實時碼流解碼顯示以及播放控制等功能,Python中調用方法為sdk.NET_DVR_RealPlay_V40(lUserID,Ctypes.byref(lpPreviewInfo),callBack,pUser) 。其中lpPreviewInfo是Ctypes構造的結構體,結構體中lpPreviewInfo.hPlayWnd=hwnd為窗口句柄,用于播放圖像。

2.4 云臺控制

云臺控制實現攝像機的鏡頭方位調整及變焦變倍等操作,Python中的調用方法為:sdk.NET_DVR_PTZControl(lRealHandle,dwPTZCommand,dwStop)。

2.5 報警布防

建立報警通道函數在Python中調用方法為sdk.NET_DVR_SetupAlarmChan_V41(lUserID,Ctypes.byref(struAlarmParam)),struAlarmParam是Ctypes構造的報警布放參數結構體。啟動布防前,需要調用注冊回調函數的接口NET_DVR_SetDVRMessageCallBack_V30(),注冊回調函數的格式為“回調函數實例=回調函數類型(具體回調函數)”,然后將回調函數實例作為參數傳給注冊接口。

2.6 用戶注銷

用戶注銷函數在Python中的調用方法為sdk.NET_DVR_Logout(lUserID)。

2.7 釋放資源

釋放資源函數在Python中的調用方法為sdk.NET_DVR_Cleanup(),在程序結束前使用。

2.8 類的封裝

將SDK提供的接口進一步封裝到類(class)里,從而簡化SDK接口,解除上層代碼與SDK之間的耦合關系。由于海康SDK只需初始化一次,故這里將類設計為單例模式,將類的函數設計為靜態函數。

3 結束語

利用上述方法實現了Python語言與海康SDK的聯合開發。用此方法編寫的設備監控應用程序運行良好,為后續系統引入智能識別技術打下了堅實的基礎。

猜你喜歡
用戶設備方法
諧響應分析在設備減振中的應用
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 欧美精品不卡| 97se亚洲综合在线天天 | 亚洲日韩欧美在线观看| 久久免费视频6| 激情综合五月网| 国产一级毛片高清完整视频版| 97久久免费视频| 午夜综合网| 亚洲欧美日韩动漫| 欧美色伊人| 久久情精品国产品免费| 国产a网站| 国产女人水多毛片18| 激情成人综合网| 久久久久青草大香线综合精品| 午夜爽爽视频| 亚洲欧美另类日本| 欧美19综合中文字幕| 午夜视频免费一区二区在线看| 思思99思思久久最新精品| 97免费在线观看视频| 亚洲免费福利视频| 国产在线视频自拍| 欧美午夜小视频| 五月激情婷婷综合| 亚洲an第二区国产精品| 精品久久777| 精品人妻无码中字系列| 九色综合伊人久久富二代| 久久黄色一级视频| 亚洲色图欧美激情| 午夜小视频在线| 欧美日韩中文国产va另类| 欧美精品H在线播放| 日韩 欧美 国产 精品 综合| 国产一级一级毛片永久| 无码内射在线| 国产福利影院在线观看| 中文天堂在线视频| 无码精品国产VA在线观看DVD| 尤物特级无码毛片免费| 成年人国产网站| 欧美精品亚洲日韩a| a天堂视频| 亚洲天堂色色人体| 亚洲人成网站18禁动漫无码| 91久久精品国产| 国产精品久久久久婷婷五月| 热re99久久精品国99热| 久久久受www免费人成| 全色黄大色大片免费久久老太| 久久久受www免费人成| 色屁屁一区二区三区视频国产| 中文字幕 欧美日韩| 91九色最新地址| 少妇精品在线| 大学生久久香蕉国产线观看| 精品视频一区二区三区在线播| 欧美精品H在线播放| 亚洲二三区| 精品国产美女福到在线直播| 丁香综合在线| 中文字幕无码中文字幕有码在线| 国产小视频免费观看| 久久永久免费人妻精品| av在线人妻熟妇| 综合人妻久久一区二区精品 | 精品国产毛片| 亚洲色大成网站www国产| 日本不卡在线视频| 免费一级成人毛片| jizz国产视频| 亚洲无码视频喷水| 99这里只有精品6| 波多野结衣中文字幕一区| 77777亚洲午夜久久多人| 玩两个丰满老熟女久久网| 亚洲人成亚洲精品| 精久久久久无码区中文字幕| 怡红院美国分院一区二区| 日本黄网在线观看| 成年人福利视频|