EasyCVR新增大華裝置預置點位置功能實現

2022-09-08 21:33:17 字數 1165 閱讀 5446

大家知道easycvr支援雲台控制,可以遠端控制雲台,目前我們在對easycvr的裝置對接進行新的開發,如果使用大華裝置,我們要求能夠通過大華的sdk獲取所有的預置點。

在該功能的開發中,我們使用client_queryremotdevstate函式用來獲取預置點位置,呼叫client_queryremotdevstate函式時,此函式返回值始終是false(獲取失敗),函式返回值是7。

在大華文件中查詢7代表:「使用者引數不合法」(下圖)。

所以大華文件中已經說明引數不合法了,client_queryremotdevstate函式有7個引數:分別為登入裝置的控制代碼、查詢資訊型別、通道號、輸出pbuf、快取長度、輸出引數和等待時間(下圖為官方文件)。

下面來乙個乙個引數分析:

第乙個引數是登入控制代碼,此引數肯定沒錯,如果錯誤就不會返回7。

第二個引數是需要查詢的資訊型別,我們需要查詢裝置的預置位,所以只能填:dh_devstate_ptz_preset_list

第三個引數是通道號,因為直接連線攝像機,所以為0;

第四個引數是輸出的引數,且根據第二個引數來的,對應的net_ptz_preset_list結構體;

第五個引數是第四個引數大小:sizeof(net_ptz_preset_list)來計算大小即可;

第六個引數是等待時長,預設是3000ms;

所以在分析引數中得知,如果出錯最有可能是第四個引數的問題(第四個引數的結構體如下):

檢視此結構體得知有四個值,最後問題就明朗了,新增此四個值即可。那麼直接上修改過的**:

最後還需要特別注意一點,需要分配記憶體給pstuptzporsetlist。

sql批量新增大量字典

1.建立自增序列 drop sequence if exists seq dict value create sequence seq dict value increment 1 minvalue 1 maxvalue 9223372036854775807 start 1 cache 1 cyc...

mysql php pdo批量新增大資料

1.使用insert into插入 ini set max execution time 0 限制超時時間,因為第一種時間較長,索性設為0不限制 pdo new pdo mysql host localhost dbname oradt cloud1520 root 123456 for i 0 i...

EasyGBS查詢大華裝置的錄影列表時失敗

提出問題 easygbs查詢大華裝置的錄影列表時頁面提示query recordinfo return 400 bad request 分析問題 通過抓包和對比gb28181協議文件時發現傳送recordinfo訊息時 xml訊息中缺少type節點 解決問題 recordinfo xml訊息中增加乙...