一、功能概述
TUTK SDK 的 IOTCAPIs 提供一套局域網(wǎng)設(shè)備搜索接口,支持在同一路由器下發(fā)現(xiàn)在線設(shè)備。核心用于 APP 端快速獲取局域網(wǎng)內(nèi)的設(shè)備列表,為后續(xù)連接、控制等操作提供基礎(chǔ)。
當(dāng)前推薦使用「IOTC_Search_Device_Start + IOTC_Search_Device_Stop + IOTC_Search_Device_Result」組合接口,另外兩個(gè)舊接口已廢棄,不建議再使用。
二、API列表說(shuō)明
局域網(wǎng)搜索相關(guān)API共3組,其中2組已廢棄,1組為當(dāng)前推薦使用接口:
| API名稱 | 狀態(tài) | 功能描述 | 備注 |
|---|---|---|---|
| IOTC_Lan_Search2 | 已廢棄 | 局域網(wǎng)設(shè)備搜索(舊版接口) | 無(wú)替代場(chǎng)景,不建議使用 |
| IOTC_Lan_Search2_Ex | 已廢棄 | 增強(qiáng)版局域網(wǎng)設(shè)備搜索(舊版接口) | 無(wú)替代場(chǎng)景,不建議使用 |
| IOTC_Search_Device_Start IOTC_Search_Device_Stop IOTC_Search_Device_Result | 推薦使用 | 啟動(dòng)搜索 + 停止搜索 + 獲取結(jié)果組合接口 | 支持自定義超時(shí)時(shí)間、搜索間隔,非阻塞獲取結(jié)果 |
三、使用示例(推薦方案)
以下示例以 C 語(yǔ)言為例,展示完整的局域網(wǎng)設(shè)備搜索流程:?jiǎn)?dòng)搜索 → 循環(huán)獲取結(jié)果 → 停止搜索。支持最多發(fā)現(xiàn)20臺(tái)設(shè)備,非阻塞模式避免UI卡頓。
啟動(dòng)搜索設(shè)備:
獲取最新的設(shè)備(可定時(shí)查詢):
結(jié)束搜索:
示例說(shuō)明
? 搜索啟動(dòng):IOTC_Search_Device_Start 傳入超時(shí)時(shí)間和搜索間隔,SDK 內(nèi)部自動(dòng)發(fā)送廣播包搜索設(shè)備;
? 結(jié)果獲?。?span id="4utls6qs" class="code-inline">IOTC_Search_Device_Result 采用非阻塞模式(獲取當(dāng)前最新結(jié)果),ret 為本次新發(fā)現(xiàn)的設(shè)備數(shù)量;
? 搜索停止:無(wú)論正常結(jié)束還是異常退出,都需調(diào)用 IOTC_Search_Device_Stop 釋放資源,避免內(nèi)存泄漏。
四、開發(fā)Tips
若不想在搜索過(guò)程中暴露設(shè)備 UID(唯一標(biāo)識(shí)),可通過(guò)以下方式配置自定義標(biāo)識(shí):
? 設(shè)備端:調(diào)用 IOTC_Set_Device_Name(const char* user_define_string) 設(shè)置自定義字符串(如設(shè)備型號(hào)、昵稱等);
? APP端:通過(guò) st_SearchDeviceInfo.DeviceName 獲取該自定義標(biāo)識(shí),替代 UID 用于設(shè)備展示或識(shí)別。
SDK 默認(rèn)使用 32761 端口發(fā)送廣播包進(jìn)行設(shè)備搜索,若需修改端口(如避免端口沖突),可調(diào)用:
IOTC_Set_LanSearchPort(nPort)
如果設(shè)備端不希望開啟局域網(wǎng)搜索功能,可以調(diào)用下面的API關(guān)閉(SDK版本不低于4.3.8.0):
IOTC_Set_Device_Lan_Detectable(0);
