集成海康威視Sadp SDK實現局域網設備搜索

下面將介紹集成SadpSDK的接口調用流程,以及使用到的接口功能說明。如有疑問歡迎留言探討。

  • 啓動SADP服務

           啓動接口 SADP_Start_V40 的第一個參數是 設備發現回調函數。當SDK搜索到設備時會通過 設備發現回調函數 將設備信息回調給上層。回調函數中每次只回調一個設備信息,信息類型有 設備上線,設備更新,設備下線等。

  • 釋放SADP資源

           停止接口 SADP_Stop,關閉在線設備搜索

  • 設置搜索間隔

           SDK內部默認60s自動搜索一次在線設備,可調用接口 SADP_SetAutoRequestInterval 自行設置搜索間隔(單位秒)。

  • 主動觸發搜索

           主動觸發搜索接口 SADP_SendInquiry。配合清理設備列表接口 SADP_Clearup 可實現實時刷新功能。

  •  

#include <stdio.h>
#include <windows.h>
#include "Sadp.h"

//設備信息回調函數
void CALLBACK SadpDataCallBack(const SADP_DEVICE_INFO_V40 *lpDeviceInfoV40, void* pUserData)
{
     printf("\r\n----------------------------------------\r\n");
     printf("      IP    %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szIPv4Address); //設備ip
     printf("     Mac    %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szMAC);         //設備Mac地址
     printf("SerialNO    %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szSerialNO);    //設備序列號
     printf("  Result    %d\r\n", lpDeviceInfoV40->struSadpDeviceInfo.iResult);       //消息類型: 1.設備上線, 2.設備更新, 3.設備下線
     printf("\r\n----------------------------------------\r\n");
}
  
int main(void)
{
    //開啓sadp日誌  3(打印所以日誌) "C:\\SadpLog\\"(日誌目錄) false(保留所有日誌文件)
    SADP_SetLogToFile(3, "C:\\SadpLog\\", false);

    //開啓sadp服務
    int iRet = SADP_Start_V40(SadpDataCallBack);
    if (iRet == 0)
    {
        //開啓失敗,獲取錯誤碼
        int iError = SADP_GetLastError()
        printf("SADP_Start_V40 Failed!  Err(%d)\r\n", iError);
    } 

    //設置自動搜索的時間間隔,爲0則不自動請求
    SADP_SetAutoRequestInterval(10); //單位,秒
 
    Sleep(20000);

    //釋放資源
    SADP_Stop();
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章