一、現在情況
產品: 海康的球機攝像頭DS-2DF8237I5X-A,支持smart功能,包括了 區域入侵 越界偵測 進入區域 等功能。。。
我們開發的目標:也是Smart事件中的所有功能,現在情況是海康sdk中java撰寫的demo我們已經用不上了。。。
我們要開發更高級的功能,我在開發區域入侵這一步驟時,給大家講講我遇到的問題和解決方法,和我還沒有解決的問題。
1.函式提供
海康官方提供的sdk中包括了所有需要的環境,只不過他的東西沒有整理好,東西很瑣碎,個人感覺把所有情況都寫入一個檔案中比較好些。
我是java開發,從他的java程式中找到了提供函式的介面HCNetSDK.Class,這個類中是通過java 的jna技術將java可以呼叫dll類別庫中的函式。(當然這個類中的函式他只是把自己需要的函式寫入了進行,如果要開發其他的功能,根據用戶手冊是找不到里面的函式的,另外需要自己去對于的頭檔案中.h自己找,然后在寫出java函式自己呼叫)
2.沒有的函式從哪里找?
如果要開發其他功能,比如 區域入侵,海康demo中的java和c#demo都是不完整的,只是部分功能,只有MFC是完整的。而我只是java。那么從哪里找c++中dll類別庫的函式那,在頭檔案的檔案夾中找到HCNetSDK.h,函式全都包括了,如果懂jna技術,只需要搜索對應的函式名稱,將它的函式寫入java提供的HCNetSDK.Class介面類中,你就可以呼叫到了。
二、我沒有解決的問題
看這里 我的問題!!!!!!
看下面截圖的,它定義了NET_DVR_GetDeviceAbility,代表要獲取設備能力集的結構體,結構體中定義了6個引數。
其中我標紅的,我已經知道了它要傳遞的引數是char型別的,java中代表String。看它的傳遞引數解釋為 是一個xml檔案或者結構體,那我懵了,java中不是傳遞一個String型別的引數嗎?怎么是一個結構體???結構體不是定義一個物件嗎?把物件的toString()方法放入當前引數嗎??? 那它的dwInLength,(輸入緩沖區的長度) 是當前字串的length()方法嗎???
我在這一步卡住了。我沒有從java 的demo中找到類似的代碼,不知道我的猜想是否正確?????
如果有那位兄弟知道做過,請copy份代碼給我,或者講解下改怎么傳遞這個引數!!!!!
NET_DVR_GetDeviceAbility結構體包括了6個引數
LONG lUserID, NET_DVR_Login_V40等登錄介面的回傳值
DWORD dwAbilityType,能力型別
char *pInBuf,輸入緩沖區指標(按照設備規定的能力引數的描述方式組合,可以是XML文本或結構體形式,詳見“Remarks”說明)
DWORD dwInLength,輸入緩沖區的長度
char *pOutBuf,輸出緩沖區指標(按照設備規定的能力集的描述方式,可以是XML文本或結構體形式,詳見“Remarks”說明)
DWORD dwOutLength 接收資料的緩沖區的長度


對了。
我從sdk的c++代碼中找到了NET_DVR_GetDeviceAbility函式。如果你懂c++,你覺對看的懂。
把名字叫m_struAbility的結構體轉換為了char,
通過sizeof函式獲取結構體的大小。
NET_DVR_GetDeviceAbility(m_lUserID, ALARMHOST_ABILITY, NULL, 0, (char*)&m_struAbility, sizeof(m_struAbility))
問題是:我java改怎么寫,誰開發過海康的Smart事件功能,幫幫我!!!!!我qq1404605270,在線等!!!
uj5u.com熱心網友回復:
最近我們公司也是采購的海思攝像頭,要在后臺用java程式做一個實時監控系統,還在百度,不知道怎么做uj5u.com熱心網友回復:
給你個思路,需要一下的準備作業。1.海思的JAVA SDK開發包,Api之類的資源(官網上下載)
2.海思技術部的聯系方式(遇見難題需要和工程師取得聯系)
3.利用好githup,搜索代碼
uj5u.com熱心網友回復:
給大家提個醒,如果深入開發海康通過js+java的方式。海康有一套ISAPI,需要和公司簽訂保密協議,它的api就是掉用介面的方式呼叫球機事件,如果會抓包的可以玩玩。uj5u.com熱心網友回復:
最近也在開發smart的java版本沒思路,大神開發的怎么樣了?能交流哈嗎?我qq361117441uj5u.com熱心網友回復:
大佬,我們最近也在用java做區域入侵的功能,完全無從下手,求大佬給個demo轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52223.html
標籤:Eclipse
上一篇:開發遇到的問題
