亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VS2022如何調試通過海康攝像頭煙火識別SDK

發布時間:2022-02-08 09:37:01 來源:億速云 閱讀:336 作者:小新 欄目:開發技術

這篇文章主要介紹VS2022如何調試通過海康攝像頭煙火識別SDK,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

下面是我根據海康官方文檔代碼,放到VS 2022 版本中調試通過后的代碼:

#include <stdio.h>
#include <iostream>
#include "Windows.h"
#include "HCNetSDK.h"

using namespace std;

//時間解析宏定義
#define GET_YEAR(_time_)      (((_time_)>>26) + 2000) 
#define GET_MONTH(_time_)     (((_time_)>>22) & 15)
#define GET_DAY(_time_)       (((_time_)>>17) & 31)
#define GET_HOUR(_time_)      (((_time_)>>12) & 31) 
#define GET_MINUTE(_time_)    (((_time_)>>6)  & 63)
#define GET_SECOND(_time_)    (((_time_)>>0)  & 63)



BOOL CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER* pAlarmer, char* pAlarmInfo, DWORD dwBufLen, void* pUser)
{
    
    switch (lCommand)
    {
    case COMM_FIREDETECTION_ALARM: //火點檢測報警
    {
        printf("fire192.168.1.31 \n");
            
        NET_DVR_FIREDETECTION_ALARM struFireDetection = { 0 };
        memcpy(&struFireDetection, pAlarmInfo, sizeof(NET_DVR_FIREDETECTION_ALARM));
        printf("火點檢測報警: RelativeTime:%d, AbsTime:%d, PTZ{PanPos:%d, TiltPos:%d, ZoomPos:%d}, \
        PicDataLen:%d, DevInfo{DevIP:%s, Port:%d, Channel:%d, IvmsChannel:%d}, \
        FireMaxTemperature:%d, TargetDistance:%d, fireRectInfo{fX:%f,fY:%f,fWidth%f,fHeight%f}, \
        fireMaxTemperaturePoint{fX:%f,fY:%f}\n", struFireDetection.dwRelativeTime, \
            struFireDetection.dwAbsTime, struFireDetection.wPanPos, struFireDetection.wTiltPos, \
            struFireDetection.wZoomPos, struFireDetection.dwPicDataLen, \
            struFireDetection.struDevInfo.struDevIP.sIpV4, struFireDetection.struDevInfo.wPort, \
            struFireDetection.struDevInfo.byChannel, struFireDetection.struDevInfo.byIvmsChannel, \
            struFireDetection.wFireMaxTemperature, struFireDetection.wTargetDistance, \
            struFireDetection.struRect.fX, struFireDetection.struRect.fY, struFireDetection.struRect.fWidth, \
            struFireDetection.struRect.fHeight, struFireDetection.struPoint.fX, struFireDetection.struPoint.fY);

        
        NET_DVR_TIME struAbsTime = { 0 };
        struAbsTime.dwYear = GET_YEAR(struFireDetection.dwAbsTime);
        struAbsTime.dwMonth = GET_MONTH(struFireDetection.dwAbsTime);
        struAbsTime.dwDay = GET_DAY(struFireDetection.dwAbsTime);
        struAbsTime.dwHour = GET_HOUR(struFireDetection.dwAbsTime);
        struAbsTime.dwMinute = GET_MINUTE(struFireDetection.dwAbsTime);
        struAbsTime.dwSecond = GET_SECOND(struFireDetection.dwAbsTime);

        //保存報警抓拍圖片
        if (struFireDetection.dwPicDataLen > 0 && struFireDetection.pBuffer != NULL)
        {
            char cFilename[256] = { 0 };
            HANDLE hFile;
            DWORD dwReturn;

            char chTime[128];
            sprintf_s(chTime, "%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d", struAbsTime.dwYear, struAbsTime.dwMonth, struAbsTime.dwDay, struAbsTime.dwHour, struAbsTime.dwMinute, struAbsTime.dwSecond);

            sprintf_s(cFilename, "FireDetectionPic[%s][%s].jpg", struFireDetection.struDevInfo.struDevIP.sIpV4, chTime);
            LPCWSTR tmp;
            // begin added by zhangchao
            tmp = L"FireDetectionPic31.jpg";
            // end  added by zhangchao
            //printf("%s", tmp);

            hFile = CreateFile(tmp, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
            if (hFile == INVALID_HANDLE_VALUE)
            {
                break;
            }
            WriteFile(hFile, struFireDetection.pBuffer, struFireDetection.dwPicDataLen, &dwReturn, NULL);
            CloseHandle(hFile);
            hFile = INVALID_HANDLE_VALUE;
        }
    }
    break;
    default:
        printf("other192.168.1.31 \n");
        printf("其他報警,報警信息類型: %d\n", lCommand);
        break;
    }

    return TRUE;
}



void RunCam(const char* ip) {
    //---------------------------------------
    // 初始化
    NET_DVR_Init();
    //設置連接時間與重連時間
    NET_DVR_SetConnectTime(2000, 1);
    NET_DVR_SetReconnect(10000, true);

    //---------------------------------------
    // 注冊設備
    LONG lUserID;

    //登錄參數,包括設備地址、登錄用戶、密碼等
    NET_DVR_USER_LOGIN_INFO struLoginInfo = { 0 };
    struLoginInfo.bUseAsynLogin = 0; //同步登錄方式
    strcpy_s(struLoginInfo.sDeviceAddress, ip);
    struLoginInfo.wPort = 8000; //設備服務端口
    strcpy_s(struLoginInfo.sUserName, "your_username"); //設備登錄用戶名
    strcpy_s(struLoginInfo.sPassword, "your_password"); //設備登錄密碼

    //設備信息, 輸出參數
    NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = { 0 };

    lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
    if (lUserID < 0)
    {
        printf("Login failed, error code: %d\n", NET_DVR_GetLastError());
        NET_DVR_Cleanup();
        return;
    }

    //設置報警回調函數
    NET_DVR_SetDVRMessageCallBack_V31(MessageCallback, NULL);
    

    //啟用布防
    LONG lHandle;
    NET_DVR_SETUPALARM_PARAM  struAlarmParam = { 0 };
    struAlarmParam.dwSize = sizeof(struAlarmParam);
    //火點檢測不需要設置其他報警布防參數,不支持

    lHandle = NET_DVR_SetupAlarmChan_V41(lUserID, &struAlarmParam);
    if (lHandle < 0)
    {
        printf("NET_DVR_SetupAlarmChan_V41 error, %d\n", NET_DVR_GetLastError());
        NET_DVR_Logout(lUserID);
        NET_DVR_Cleanup();
        return;
    }

    Sleep(50000); //等待過程中,如果設備上傳報警信息,在報警回調函數里面接收和處理報警信息


    //撤銷布防上傳通道
    if (!NET_DVR_CloseAlarmChan_V30(lHandle))
    {
        printf("NET_DVR_CloseAlarmChan_V30 error, %d\n", NET_DVR_GetLastError());
        NET_DVR_Logout(lUserID);
        NET_DVR_Cleanup();
        return;
    }

    //注銷用戶
    NET_DVR_Logout(lUserID);
    //釋放SDK資源
    NET_DVR_Cleanup();
}


void main() {
    RunCam("192.168.1.31");
    return;
}

如何配置VS 2022 ?

第一步:打開窗口頂部 【項目】菜單,選中 【<某某項目>屬性】。

第二步:在打開的對話框中,左側菜單選擇 【C/C++】=> 【常規】,選中右側附加包含目錄中,點擊右側出現的向下箭頭,點擊編輯,在打開的對話框中如下填寫:

VS2022如何調試通過海康攝像頭煙火識別SDK

其中 D:\ws\vc\emptycam\hkheader 文件夾放著海康的頭文件,分別是: DataType.h、DecodeCardSdk.h、HCNetSDK.h、plaympeg4.h。

第三步:左側菜單選擇 【鏈接器】=> 【常規】。右側選中附加庫目錄,點擊右側小三角,點擊編輯,打開對話框。

VS2022如何調試通過海康攝像頭煙火識別SDK

文件夾 D:\ws\vc\emptycam\hkdll 是放海康dll文件的地方。文件如下圖所示:

VS2022如何調試通過海康攝像頭煙火識別SDK

第四步:左側菜單選擇 【鏈接器】=> 【輸入】。右側選中【附加依賴項】點擊右側小三角,點擊編輯,打開對話框。內容按照圖片里的文字進行填寫。

VS2022如何調試通過海康攝像頭煙火識別SDK

以上是“VS2022如何調試通過海康攝像頭煙火識別SDK”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

壤塘县| 治多县| 许昌县| 甘德县| 西林县| 喀喇沁旗| 张家港市| 富蕴县| 习水县| 同江市| 靖边县| 南城县| 定州市| 神农架林区| 隆德县| 寻乌县| 洛扎县| 南宫市| 栾川县| 桂阳县| 乐至县| 林芝县| 平罗县| 贵南县| 谢通门县| 洪雅县| 吉木乃县| 台北县| 屏山县| 微山县| 高唐县| 黄浦区| 桃园市| 大足县| 湾仔区| 定边县| 阜南县| 区。| 当涂县| 大关县| 南汇区|