天天看點

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

EasyCVR平台支援多類型裝置、多協定方式接入,包括市場主流标準協定國标GB/T28181、RTMP、RTSP/Onvif協定等,以及廠家私有協定如海康SDK、大華SDK、海康Ehome等。平台可将接入的流媒體進行處理及分發,分發的視訊格式包括RTSP、RTMP、FLV、HLS、WebRTC等。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

我們在測試時發現,通過大華SDK将裝置接入出現異常問題。在裝置的背景程式中,顯示有1台裝置線上,但是使用SDK登入大華裝置,線上數為0,與實際線上數量不符。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

于是我們針對該情況進行了排查。檢視文檔得知,CLIENT_QueryDevInfo是指擷取裝置是否線上情況。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

大華SDK的文檔說明資訊如下:

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

在實際中使用此函數,輸出的NET_OUT_GET_CAMERA_STATEINFO結構體如下,emConnectionState字段值為0,并沒有輸出裝置的線上和離線狀态。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

文檔中說明,emConnectionState為2才是連接配接狀态,是以此函數無法擷取到裝置的線上離線情況。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

從文檔中發現,擷取裝置的線上狀态不僅僅隻有這一處。CLIENT_QueryNewSystemInfo函數也可擷取裝置線上、離線狀态。

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?
EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

解決方法如下:

在登入裝置時,調用CLIENT_QueryNewSystemInfo函數擷取裝置的線上離線情況,如下:

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

STATUS.devStatus記憶體位址為(json資料):

EasyCVR平台通過大華SDK接入裝置,裝置在離線狀态不一緻該如何解決?

繼續閱讀