一、功能概述
TUTK SDK 的 IOTCAPIs 提供一套局域网设备搜索接口,支持在同一路由器下发现在线设备。核心用于 APP 端快速获取局域网内的设备列表,为后续连接、控制等操作提供基础。
当前推荐使用「IOTC_Search_Device_Start + IOTC_Search_Device_Stop + IOTC_Search_Device_Result」组合接口,另外两个旧接口已废弃,不建议再使用。
二、API列表说明
局域网搜索相关API共3组,其中2组已废弃,1组为当前推荐使用接口:
| API名称 | 状态 | 功能描述 | 备注 |
|---|---|---|---|
| IOTC_Lan_Search2 | 已废弃 | 局域网设备搜索(旧版接口) | 无替代场景,不建议使用 |
| IOTC_Lan_Search2_Ex | 已废弃 | 增强版局域网设备搜索(旧版接口) | 无替代场景,不建议使用 |
| IOTC_Search_Device_Start IOTC_Search_Device_Stop IOTC_Search_Device_Result | 推荐使用 | 启动搜索 + 停止搜索 + 获取结果组合接口 | 支持自定义超时时间、搜索间隔,非阻塞获取结果 |
三、使用示例(推荐方案)
以下示例以 C 语言为例,展示完整的局域网设备搜索流程:启动搜索 → 循环获取结果 → 停止搜索。支持最多发现20台设备,非阻塞模式避免UI卡顿。
启动搜索设备:
获取最新的设备(可定时查询):
结束搜索:
示例说明
• 搜索启动:IOTC_Search_Device_Start 传入超时时间和搜索间隔,SDK 内部自动发送广播包搜索设备;
• 结果获取:IOTC_Search_Device_Result 采用非阻塞模式(获取当前最新结果),ret 为本次新发现的设备数量;
• 搜索停止:无论正常结束还是异常退出,都需调用 IOTC_Search_Device_Stop 释放资源,避免内存泄漏。
四、开发Tips
若不想在搜索过程中暴露设备 UID(唯一标识),可通过以下方式配置自定义标识:
• 设备端:调用 IOTC_Set_Device_Name(const char* user_define_string) 设置自定义字符串(如设备型号、昵称等);
• APP端:通过 st_SearchDeviceInfo.DeviceName 获取该自定义标识,替代 UID 用于设备展示或识别。
SDK 默认使用 32761 端口发送广播包进行设备搜索,若需修改端口(如避免端口冲突),可调用:
int32_t IOTC_Set_LanSearchPort(uint16_t nPort)
