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