更新时间:2023-10-08 08:39:53下载pdf
App 与设备在同一个局域网时,App 会下发 Token 到设备,设备收到 Token 后进行后续的激活绑定流程。局域网绑定的方案主要适用于无需依赖其他设备进行配网,就可连接路由的设备。
设置配网模式为有线配网。
connect_mode = PARING_MODE_WIRED
static OPERATE_RET __TUYA_IPC_SDK_START(TUYA_IPC_PARING_MODE_E connect_mode, CHAR_T *p_token)
{
printf("SDK Version:%s\r\n", tuya_ipc_get_sdk_info());
TUYA_IPC_LINK_TYPE_E link_type = TUYA_IPC_LINK_WIRE;
TUYA_IPC_SDK_RUN_VAR_S ipc_sdk_run_var ={0};
memset(&ipc_sdk_run_var,0,sizeof(ipc_sdk_run_var));
/*certification information(essential)*/
strcpy(ipc_sdk_run_var.iot_info.product_key,s_ipc_pid);
strcpy(ipc_sdk_run_var.iot_info.uuid,s_ipc_uuid);
strcpy(ipc_sdk_run_var.iot_info.auth_key,s_ipc_authkey);
strcpy(ipc_sdk_run_var.iot_info.dev_sw_version,s_app_version);
strcpy(ipc_sdk_run_var.iot_info.cfg_storage_path,s_ipc_storage);
//normal device
ipc_sdk_run_var.iot_info.dev_type = NORMAL_POWER_DEV;
//if needed, change to low power device
//ipc_sdk_run_var.iot_info.dev_type= LOW_POWER_DEV;
/*connect mode (essential)*/
ipc_sdk_run_var.net_info.connect_mode = connect_mode;
ipc_sdk_run_var.net_info.ipc_status_change_cb = TUYA_IPC_Status_Changed_cb;
ipc_sdk_run_var.net_info.link_type = link_type;
printf("MODE:%d LINK_TYPE:%d\r\n", connect_mode, ipc_sdk_run_var.net_info.link_type);
if(p_token)
{
strcpy(ipc_sdk_run_var.debug_info.qrcode_token,p_token);
}
设置连接模式为有线连接。
TUYA_IPC_LINK_TYPE_E link_type = TUYA_IPC_LINK_WIRE;
ipc_sdk_run_var.net_info.link_type = link_type;
适配 tkl_wired.c
。
开发框架会提供一套 Linux 标准实现接口,您根据平台特性需要检查并完成适配。
特别关注以下 API:
tkl_wired_set_status_cb
OPERATE_RET tkl_wired_set_status_cb(TKL_WIRED_STATUS_CHANGE_CB cb);
当网络状态发生变更时,需要回调接口主动告知 SDK。
例如,当断开以太网时,执行 cb(TKL_WIRED_LINK_DOWN)
。当连接以太网并分配到 IP 地址时,执行 cb(TKL_WIRED_LINK_UP)
。
如果 App 无法通过局域网发现设备,或者设备没有发送广播包,可以先确认是否将 TKL_WIRED_LINK_UP
状态告知 SDK。
tkl_wired_get_status
当 SDK 需要获取当前网络接口的连接状态时,会调用该接口,SDK 关心的是网络接口是否有 IP 地址。如果网络接口是处于激活状态并且有 IP 地址,则返回 TKL_WIRED_LINK_UP
,否则返回 TKL_WIRED_LINK_DOWN
。
tkl_wired_get_ip
当 SDK 需要获取当前网络接口的 IP 地址时,会调用该接口,用于 Socket 通讯绑定地址。对于多网口设备,返回的是哪个网络接口的IP 地址,就使用哪个网络接口通讯。一般使用连接外网的网络接口,根据自己的实际情况正确返回 IP 地址。
API 调用顺序如下。
tuya_ipc_init_sdk
、tuya_ipc_start_sdk
初始化服务 API 是否有明显异常退出。TKL_WIRED_LINK_UP
状态是否回调给 SDK。TY_LOG_LEVEL_DEBUG
,是否有 lan init success
串口日志输出。PARING_MODE_WIRED
。TUYA_IPC_LINK_WIRE
。tkl_wifi.c
和 tkl_wired.c
都需要适配。PARING_MODE_WIRED
。TUYA_IPC_LINK_WIRE
。tuya_svc_netmgr_linkage_set_default(LINKAGE_TYPE_WIRED)
。unreg not found
,是什么原因?tkl_system
组件里面 tkl_queue_create_init
平台适配是否完整,还有其他 queue
相关接口是否有平台适配差异。tkl_system
代码编译到程序里面。该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈