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亚洲综合不卡| 五月天在线网站| 成人自拍视频在线观看| 免费三A级毛片视频| 美女免费黄网站| 国产精品护士| 亚洲天堂精品视频| 天堂av综合网| 18黑白丝水手服自慰喷水网站| 波多野结衣在线一区二区| 国产拍揄自揄精品视频网站| 国产亚洲视频播放9000| 国产男人天堂| 国产成人一区| 国产亚洲精品91| 呦女亚洲一区精品| 国产国拍精品视频免费看| 亚洲国产午夜精华无码福利| 亚洲天堂网在线视频| 99中文字幕亚洲一区二区| 久久永久视频| 超清无码熟妇人妻AV在线绿巨人| 99无码中文字幕视频| 亚洲日韩精品伊甸| 青青青草国产| 谁有在线观看日韩亚洲最新视频 | 天天色综合4| 亚洲精品无码久久毛片波多野吉| 国产人前露出系列视频| AV老司机AV天堂| 欧美a在线看| 精品伊人久久久大香线蕉欧美| 好紧太爽了视频免费无码| 一级全黄毛片| 欧美高清日韩| 亚洲精品片911| 欧美爱爱网| 啪啪免费视频一区二区| 91精品综合| 2020国产免费久久精品99| 久久久久久久久久国产精品| 国产精品亚洲精品爽爽| 国产精品爽爽va在线无码观看 | 久久免费视频6| 免费观看男人免费桶女人视频| 中文字幕在线不卡视频| 青青青国产视频手机| 亚洲第一区欧美国产综合| 伊人久久青草青青综合| 欧美午夜视频在线| 国产欧美日韩精品综合在线| 国产日韩欧美视频| 夜色爽爽影院18禁妓女影院| а∨天堂一区中文字幕| 亚洲第一av网站| AⅤ色综合久久天堂AV色综合 | 国产麻豆91网在线看| 日韩毛片免费视频| 黄色污网站在线观看| 青青网在线国产| 亚洲无码视频喷水| 日本少妇又色又爽又高潮| 国产AV毛片| 爽爽影院十八禁在线观看| 亚洲视屏在线观看| 五月天在线网站| 亚洲AV色香蕉一区二区| 久草青青在线视频| 久久午夜影院| 日本高清在线看免费观看| 国产视频a| 国产青青操| 91青青在线视频| 精品无码日韩国产不卡av | 国产精品真实对白精彩久久| 成人日韩欧美| 亚洲爱婷婷色69堂| 国产成人精品无码一区二| 高清色本在线www| 国产三级a| 国产成本人片免费a∨短片|