• 国标GB28181/Ehone协议视频人脸识别/车牌识别平台EasyCVR新版本支持大华SDK接入开发记录


    我们一直都说EasyCVR开发上线以来,算是市面上兼容性较为优秀的视频能力平台,能够兼容国标GB28181、RTSP、海康SDK、Ehome协议的设备,其他主流厂家的私有协议也会不断开拓。

    继EasyCVR支持海康SDK设备接入后,EasyCVR 1.1.3版本也已经支持大华私有协议SDK设备的接入。

    如下为大华SDK调用的基本方法:

    1. 完成 SDK 初始化流程。
    2. 调用 CLIENT_GetSDKVersion,获取 SDK 版本信息(可选)。
    3. 调用 CLIENT_SetAutoReconnect,设置断线重连回调函数(可选,建议调用),
      设置后 SDK 内部断线自动重连。
    4. 调用 CLIENT_SetConnectTime,设置连接设备超时时间和尝试次数(可选)。
    5. 调用 CLIENT_SetNetworkParam,设置网络登录参数,参数中包含登录设备超时时间和尝试次数(可选)。
      6.SDK 功能使用完后,调用 CLIENT_Cleanup 释放 SDK 资源。

    初始化调用示意图:

    此处我们把调用代码列出来给大家参考一下:

    #include <windows.h>
    #include <stdio.h>
    #include "dhnetsdk.h"
     4
     5
    #pragma comment(lib , "dhnetsdk.lib")
    static BOOL g_bNetSDKInitFlag = FALSE;
    //*************************************************************************
    ********
    // 常用回调集合声明
    // 设备断线回调函数
    // 不建议在 SDK 的回调函数中调用 SDK 接口
    // 通过 CLIENT_Init 设置该回调函数,当设备出现断线时,SDK会调用该函数
    void CALLBACK DisConnectFunc(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, 
    DWORD dwUser);
    // 断线重连成功回调函数
    // 不建议在该回调函数中调用 SDK 接口
    // 通过 CLIENT_SetAutoReconnect 设置该回调函数,当已断线的设备重连成功时,SDK 会调用该函数
    void CALLBACK HaveReConnect(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, 
    LDWORD dwUser);
    //*************************************************************************
    ********
    void InitTest()
    {
     // 初始化 SDK
     g_bNetSDKInitFlag = CLIENT_Init(DisConnectFunc, 0);
    if (FALSE == g_bNetSDKInitFlag)
     {
     printf("Initialize client SDK fail; 
    ");
     return;
     }
     else
     {
     printf("Initialize client SDK done; 
    ");
     }
     
    // 此操作为可选操作
    // 获取 SDK 版本信息
     DWORD dwNetSdkVersion = CLIENT_GetSDKVersion();
     printf("NetSDK version is [%d]", dwNetSdkVersion);
     // 设置断线重连回调接口,设置过断线重连成功回调函数后,当设备出现断线情况,SDK内部会自动进行重连操作。
     6
     // 此操作为可选操作,但建议用户进行设置。
     CLIENT_SetAutoReconnect(&HaveReConnect, 0);
     // 设置登录超时时间和尝试次数
     // 此操作为可选操作
     int nWaitTime = 5000; // 登录请求响应超时时间设置为 5s
     int nTryTimes = 3; // 登录时尝试建立链接 3 次
     CLIENT_SetConnectTime(nWaitTime, nTryTimes);
     
    // 设置更多网络参数,NET_PARAM 的 nWaittime,nConnectTryNum 成员与
    CLIENT_SetConnectTime 接口设置的登录设备超时时间和尝试次数意义相同
     // 此操作为可选操作
    NET_PARAM stuNetParm = {0};
    stuNetParm.nConnectTime = 3000; // 登录时尝试建立链接的超时时间
     CLIENT_SetNetworkParam(&stuNetParm);
     // 用户初次登录设备,需要初始化一些数据才能正常实现业务功能,所以建议登录后等待
    一小段时间,具体等待时间因设备而异。
     Sleep(1000);
     printf("
    ");
    }
    void RunTest()
    {
     if (FALSE == g_bNetSDKInitFlag)
     {
     return;
     }
     // 功能业务实现处
     
    }
    void EndTest()
    {
     printf("input any key to quit!
    ");
     getchar();
    // 此处可实现退出设备操作
     7
    // 清理初始化资源
     if (TRUE == g_bNetSDKInitFlag)
     {
     CLIENT_Cleanup();
     g_bNetSDKInitFlag = FALSE;
     }
     return;
    }
    int main()
    {
    InitTest();
    RunTest();
    EndTest();
    return 0;
    } 
    //*************************************************************************
    ********
    // 常用回调集合定义
    void CALLBACK DisConnectFunc(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, 
    DWORD dwUser)
    {
     printf("Call DisConnectFunc
    ");
     printf("lLoginID[0x%x]", lLoginID);
     if (NULL != pchDVRIP)
     {
     printf("pchDVRIP[%s]
    ", pchDVRIP);
     }
     printf("nDVRPort[%d]
    ", nDVRPort);
     printf("dwUser[%p]
    ", dwUser);
     printf("
    ");
    }
    void CALLBACK HaveReConnect(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, 
    LDWORD dwUser)
    {
     printf("Call HaveReConnect
    ");
     printf("lLoginID[0x%x]", lLoginID);
     if (NULL != pchDVRIP)
     {
     printf("pchDVRIP[%s]
    ", pchDVRIP);
     }
     printf("nDVRPort[%d]
    ", nDVRPort);
     printf("dwUser[%p]
    ", dwUser);
     printf("
    ");
     8
    }
  • 相关阅读:
    深入理解node.js异步编程:基础篇
    js里的回调函数
    nodejs 访问网站并操作xpath
    Linux 对比两个文本的交集和差集(comm)
    Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
    POJ 3134
    Spark Streaming中的操作函数分析
    Storm新特性之Flux
    POJ 题目2823 Sliding Window(RMQ,固定区间长度)
    广工2016校赛决赛
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14272926.html
Copyright © 2020-2023  润新知