Tuyaos SDK开发疑惑与咨询

IPC/NVR/可视门铃等具备多媒体能力的设备,扫地机/AGV等机器人设备


Post Reply
hellokernel
Posts: 5

TuyaOS SDK 开发模式,看了下demo代码,没完全明白当前的架构,demo_tuyaos_adapter这个里面主要是做什么的 ?社区给的解释是“系统适配层标准代码,需要根据平台,检查对应实现是否符合”,是需要适配什么系统和平台呢 ?然后对于里面的内容,比如IPC 的配网绑定,说的是需要去修改适配tkl_wifi.c 和tkl_wire.c等等,这个一般是怎么适配的?看到的就是声明了很大的一个函数指针结构体,然后用了一个单例的方式,
TUYA_WEAK_ATTRIBUTE TKL_WIFI_DESC_T* tkl_wifi_desc_get()
{
return (TKL_WIFI_DESC_T *)&TKL_WIFI;
}

那么对于设备端的业务层,具体需要做啥呢 ?怎么调度这个结构体里面的内容。

谢谢大佬们。

郭老庄
Posts: 254

Re: Tuyaos SDK开发疑惑与咨询

demo_tuyaos_adapter把跟平台、系统相关的功能抽象出来的, 以API方式呈现的适配层,需要开发者适配。如果对接口具体定义有疑问,可以下载并参考x86平台的代码,我们对x86做了简单的适配。业务层代码参考demo_tuyaos_app。理论上如果demo_tuyaos_adapter适配成功并编译出可执行程序,就可以在涂鸦APP上体验预览、存储、dp控制等基本功能

hellokernel
Posts: 5

Re: Tuyaos SDK开发疑惑与咨询

是这样的,我们这边在做一款IP Camera,主要功能和基本功能已经全部都有了,包括驱动/系统/应用等,现在就是想接入到tuya平台。
所以我们选择的是TuyaOS SDK 的这种接入开发模式,所以我们在想需不需要实现adapter这个里面的内容。

谢谢大佬们。

郭老庄
Posts: 254

Re: Tuyaos SDK开发疑惑与咨询

demo_tuyaos_adapter是一定要实现的。只要正确实现了它,就能连上tuya平台

hellokernel
Posts: 5

Re: Tuyaos SDK开发疑惑与咨询

好的,谢谢。

还想了解下,libtuyaos.a 里面会自动通过tkl_wifi_desc_get()函数去跑整个tkl_wifi.c里面的内容,比如tkl_wifi_init、tkl_wifi_set_cur_channe、tkl_wifi_get_cur_channel等等,对于设备商,需要做的就是适配tkl_wifi.c里面的内容,比如当前真实的网络状态、ip、mac等,是这样的不?

谢谢大佬们。

郭老庄
Posts: 254

Re: Tuyaos SDK开发疑惑与咨询

是的

hellokernel
Posts: 5

Re: Tuyaos SDK开发疑惑与咨询

好的,谢谢。

然后 在IPC 摄像头设备扫描二维码配网 章节中,有一点疑惑,为什么要配置connect_mode 为AP 模式 ?传统意义上的AP 模式应该是自己做一个热点,别人来连,这里好像是反过来了,这种情况下,看着底层是主动去调了 tkl_wifi_start_ap(CONST WF_AP_CFG_IF_S *cfg), 是因为需要调用扫码的ty_user_qrcode_start 才开启AP模式了吗 ?后续还会主动去调用 tkl_wifi_station_connect(CONST SCHAR_T *ssid, CONST SCHAR_T *passwd) 吗,个人理解设备去连 wifi,应该是要用这个接口。

谢谢大佬们。

郭老庄
Posts: 254

Re: Tuyaos SDK开发疑惑与咨询

我们是多种配网方式共存的。如果设备用的是WiFi,配网时就会同时支持二维码配网和AP配网,这个时候wifi要处于AP模式。在获取到配网信息后,wifi模式切到station模式,用于连接wifi

hellokernel
Posts: 5

Re: Tuyaos SDK开发疑惑与咨询

[20250703_14:25:59][root@Zeratul:bin]# ./demo
[20250703_14:25:59]
[20250703_14:26:00]libcamerasdk_cmd_impl: SDKCMD_GET_DEVICE_INFO Error, ERRCODE: -1uuid: , authKey: SDK Version:< TuyaOS V:6.2.14 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
[20250703_14:26:00]< BUILD AT:2025_06_20_14_28_51 BY ci_manage FOR tuyaos-ipc AT T32_uclibc_r3.3.7 >
[20250703_14:26:00]IOT DEFS < WIFI_GW:1 DEBUG:0 KV_FILE:0 LITTLE_END:1 SL:1 OPERATING_SYSTEM:100 RELIABLE_TRANSFER:0 >
[20250703_14:26:00]
[20250703_14:26:00]MODE:1 LINK_TYPE:1 IP_MODE_TYPE:0
[20250703_14:26:00][01-01 00:00:00 ty I][5790][tal_thread.c:185] thread_create name:sys_timer,stackDepth:4096,totalstackDepth:4096,priority:5
[20250703_14:26:00][01-01 00:00:00 ty I][5790][tal_thread.c:185] thread_create name:wq_system,stackDepth:6144,totalstackDepth:10240,priority:3
[20250703_14:26:00][01-01 00:00:00 ty I][5790][tal_thread.c:185] thread_create name:wq_highpri,stackDepth:5120,totalstackDepth:15360,priority:4
[20250703_14:26:00]tkl_wifi_init-87 called
[20250703_14:26:00][01-01 00:00:00 ty I][5790][tal_thread.c:185] thread_create name:health_monitor,stackDepth:1536,totalstackDepth:16896,priority:5
[20250703_14:26:00][01-01 00:00:00 ty I][5790][mqc_app.c:490] mqc app init ...
[20250703_14:26:00][01-01 00:00:00 ty E][5790][log_seq.c:861] open err
[20250703_14:26:00][01-01 00:00:00 ty I][5790][kv_storge.c:45] Init Kvs With File:/config/profiles/tuya/
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_tls.c:876] uni_random_init...
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_tls.c:303] tuya_tls_rand_init ok!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][ws_db_gw.c:84] wd_protected_read fails gw_bi -6
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_svc_devos.c:296] base read fail:-6
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_svc_devos.c:546] ret:-7171
[20250703_14:26:00][01-01 00:00:00 ty E][5790][base_event.c:153] ret:-7171
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_wifi_link.c:85] start wifi link params validate, nc_tp:2 md:0
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_wifi_link.c:107] gw_wsm.nc_tp:2
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_wifi_link.c:108] gw_wsm.md:0
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_wifi_reset.c:675] read wf start mode err:-6
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:563] Last reset reason: 7
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:395] gw_cntl->gw_if.abi:0 input:0
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:396] gw_cntl->gw_if.product_key:rcfuqofjpq6fswdf, input:rcfuqofjpq6fswdf
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:397] gw_cntl->gw_if.tp:0, input:0
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:596] enter success_proc
[20250703_14:26:00]WIFI Get MAC 00-00-00-00-00-00
[20250703_14:26:00][01-01 00:00:00 ty N][5790][tuya_svc_devos.c:599] serial_no:000000000000
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ring_buffer.c:114] ring buffer list not inited!
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ipc_hardware_info.c:173] NO sensor info. Please check if you need.
[20250703_14:26:00]Set Country Code:0
[20250703_14:26:00][01-01 00:00:00 ty N][43a4][tuya_wifi_status.c:167] cur stat:2 0x0 -->>
[20250703_14:26:00][01-01 00:00:00 ty N][43a4][tuya_wifi_status.c:169] wifi netstat changed to:2 -->>
[20250703_14:26:00][01-01 00:00:00 ty N][43a4][tuya_svc_devos.c:246] __devos_init_evt success
[20250703_14:26:00][01-01 00:00:00 ty E][5790][tuya_ipc_sdk_init.c:401] wf nw status changed to [2], but not notify
[20250703_14:26:00]
[20250703_14:26:00]tuya ipc sdk start is complete
[20250703_14:26:00]-----start to connect wifi-----
[20250703_14:26:03]wifi_status_event_cb-70 set wf event[1]
[20250703_14:26:03][01-01 00:00:03 ty N][43a4][tal_wifi_reconnet.c:249] wifi status changed to 1, stat: 0
[20250703_14:26:07][libcamerasdk-08:00:54.074] [WARN]:recv heartbeat ack

我们用的自己的二维码识别和处理接口,然后直接调用的tuya_ipc_direct_connect接口,不过看打印没有跑到tkl_wifi_station_connect,wifi 连接失败了

郭老庄
Posts: 254

Re: Tuyaos SDK开发疑惑与咨询

麻烦开下debug,方法:调用tuya_ipc_set_log_attr(4,NULL); 然后提供完整的日志,论坛可以上传附件。

Post Reply