下面將介紹集成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();
}