最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VS2022調(diào)試通過??禂z像頭煙火識別SDK的實(shí)現(xiàn)

 更新時間:2022年02月07日 16:23:03   作者:zhangchao19890805  
本文主要介紹了VS2022調(diào)試通過??禂z像頭煙火識別SDK的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

下面是我根據(jù)??倒俜轿臋n代碼,放到VS 2022 版本中調(diào)試通過后的代碼:

#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: //火點(diǎn)檢測報警
    {
        printf("fire192.168.1.31 \n");
            
        NET_DVR_FIREDETECTION_ALARM struFireDetection = { 0 };
        memcpy(&struFireDetection, pAlarmInfo, sizeof(NET_DVR_FIREDETECTION_ALARM));
        printf("火點(diǎn)檢測報警: 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();
    //設(shè)置連接時間與重連時間
    NET_DVR_SetConnectTime(2000, 1);
    NET_DVR_SetReconnect(10000, true);

    //---------------------------------------
    // 注冊設(shè)備
    LONG lUserID;

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

    //設(shè)備信息, 輸出參數(shù)
    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;
    }

    //設(shè)置報警回調(diào)函數(shù)
    NET_DVR_SetDVRMessageCallBack_V31(MessageCallback, NULL);
    

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

    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); //等待過程中,如果設(shè)備上傳報警信息,在報警回調(diào)函數(shù)里面接收和處理報警信息


    //撤銷布防上傳通道
    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 ?

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

文件夾 D:\ws\vc\emptycam\hkdll 是放??礵ll文件的地方。文件如下圖所示:

在這里插入圖片描述

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

在這里插入圖片描述

 到此這篇關(guān)于VS2022調(diào)試通過??禂z像頭煙火識別SDK的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VS2022海康攝像頭煙火識別SDK內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c++與c中的數(shù)組初始化默認(rèn)值如何為0

    c++與c中的數(shù)組初始化默認(rèn)值如何為0

    這篇文章主要介紹了c++與c中的數(shù)組初始化默認(rèn)值如何為0問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++實(shí)戰(zhàn)之二進(jìn)制數(shù)據(jù)處理與封裝

    C++實(shí)戰(zhàn)之二進(jìn)制數(shù)據(jù)處理與封裝

    在電腦上一切數(shù)據(jù)都是通過二進(jìn)制(0或1)進(jìn)行存儲的,通過多位二進(jìn)制數(shù)據(jù)可以進(jìn)而表示整形、浮點(diǎn)型、字符、字符串等各種基礎(chǔ)類型數(shù)據(jù)或者一些更復(fù)雜的數(shù)據(jù)格式。本文將為大家詳細(xì)講講二進(jìn)制數(shù)據(jù)處理與封裝,需要的可以參考一下
    2022-08-08
  • C++中vector的用法實(shí)例解析

    C++中vector的用法實(shí)例解析

    這篇文章主要介紹了C++中vector的用法,詳細(xì)描述了vector的各種常見的用法及注意事項(xiàng),需要的朋友可以參考下
    2014-08-08
  • C語言在輸入輸出時遇到的常見問題總結(jié)

    C語言在輸入輸出時遇到的常見問題總結(jié)

    大家在平時的做題中是否會遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時候,總是和題目給出的樣例輸出格式不同?,導(dǎo)致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點(diǎn),需要的可以參考一下
    2022-09-09
  • C語言實(shí)現(xiàn)簡單彈跳小球

    C語言實(shí)現(xiàn)簡單彈跳小球

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單彈跳小球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C語言求矩陣的各列元素之和的代碼示例

    C語言求矩陣的各列元素之和的代碼示例

    這篇文章主要介紹了C語言求矩陣的各列元素之和的代碼示例,這也是經(jīng)常作為競賽和計算機(jī)專業(yè)考試的基礎(chǔ)練習(xí)出現(xiàn)的題目,需要的朋友可以參考下
    2016-07-07
  • C++分析講解類的靜態(tài)成員函數(shù)如何使用

    C++分析講解類的靜態(tài)成員函數(shù)如何使用

    與靜態(tài)數(shù)據(jù)成員不同,靜態(tài)成員函數(shù)的作用不是為了對象之間的溝通,而是為了能處理靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)沒有this指針。既然它沒有指向某一對象,也就無法對一個對象中的非靜態(tài)成員進(jìn)行默認(rèn)訪問
    2022-04-04
  • C語言實(shí)現(xiàn)動態(tài)開辟存儲楊輝三角

    C語言實(shí)現(xiàn)動態(tài)開辟存儲楊輝三角

    這篇文章主要介紹了如何利用C語言實(shí)現(xiàn)動態(tài)開辟存儲楊輝三角,可以靈活的開辟空間,充分的利用空間。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2022-03-03
  • C語言尋找無向圖兩點(diǎn)間的最短路徑

    C語言尋找無向圖兩點(diǎn)間的最短路徑

    這篇文章主要為大家詳細(xì)介紹了C語言尋找無向圖兩點(diǎn)間的最短路徑,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++中vector迭代器失效問題詳解

    C++中vector迭代器失效問題詳解

    vector是向量類型,它可以容納許多類型的數(shù)據(jù),如若干個整數(shù),所以稱其為容器,這篇文章主要給大家介紹了關(guān)于C++中vector迭代器失效問題的相關(guān)資料,需要的朋友可以參考下
    2021-11-11

最新評論

黑水县| 镶黄旗| 思茅市| 会昌县| 香格里拉县| 贵定县| 黄山市| 朔州市| 余庆县| 西昌市| 三原县| 临武县| 濮阳市| 突泉县| 武汉市| 嵩明县| 涿鹿县| 河东区| 宁远县| 略阳县| 龙胜| 池州市| 西乌珠穆沁旗| 邯郸县| 肇东市| 桂东县| 瑞安市| 武鸣县| 辉县市| 宣汉县| 肇庆市| 垫江县| 公安县| 瑞安市| 宁南县| 忻州市| 且末县| 天全县| 门源| 桑植县| 沈阳市|