功能描述
目前IOTCAPIs里面有提供一套局域网搜索的API,用以搜索同一个路由器下的设备。
API:
- IOTC_Lan_Search2 ;此接口已废弃
- IOTC_Lan_Search2_Ex;此接口已废弃
- IOTC_Search_Device_Start+ IOTC_Search_Device_Stop+IOTC_Search_Device_Result
使用方法
APP端在需要搜索局域网设备时使用,这里以方法3为例。
struct st_SearchDeviceInfo devices[20]; IOTC_Search_Device_Start(3000,100); while(!isInterruptionRequested()){ int ret = IOTC_Search_Device_Result(devices,20,0); if(ret < 0){ break; } for(int i = 0;i<ret;i++){ printf("find uid:%s\n",psSearchDeviceInfo[i].UID); } msleep(1000); } IOTC_Search_Device_Stop();
API说明
int32_t IOTC_Search_Device_Result(struct st_SearchDeviceInfo* psSearchDeviceInfo,int32_t nArrayLen,int32_t nGetAll) 参数说明: [out] psSearchDeviceInfo,设备信息数组指针,即搜索结果会通过这个指针返回给应用层。 [in] nArrayLen,设备信息数组的长度 [in] nGetAll,0表示只返回新搜索到的设备,1表示所有的设备 返回值:本次搜索到的UID的个数。 搜索到的设备,会存放到psSearchDeviceInfo数组中,对应的设备信息可以参考结构体的定义。
Tips
- 如果不想在搜索过程中,暴露出UID,设备端可以使用IOTC_Set_Device_Name(user_define_string)来携带自定义的字符串标识,APP端在搜到的参数里面可以拿到这个字符串标识。
- 如果想修改搜索端口,可以使用IOTC_Set_LanSearchPort()设定其他的端口,SDK默认使用32761端口做广播搜索。