Tuyaos SDK开发疑惑与咨询

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


User avatar
Passat
Posts: 93

  1. stop 消息只会在APP接听后再挂断时发出。
  2. 在接听前点击挂断则不会有任何消息。
hellokernel
Posts: 33

Re: Tuyaos SDK开发疑惑与咨询

想问下,低功耗设备在休眠时会卸载sd卡,然后通过APP预览唤醒设备(唤醒瞬间会先挂载sd卡),当进入到预览界面时,会弹出卡异常的状态,推测应该是这个tuya_ipc_sd_get_status 调用的有些慢导致 卡的实际状态上报的慢,导致APP还是保持休眠时卡异常的状态,请问这个有无方法优化下的。

谢谢大佬们。

User avatar
Passat
Posts: 93

Re: Tuyaos SDK开发疑惑与咨询

  1. tuya_ipc_sd_get_status 由上层实现
  2. SDK 不会主动上报任何DP,所有DP上报和DP获取响应都由上层触发和实现。
  3. 在预览前是否有主动上报SD卡状态?
hellokernel
Posts: 33

Re: Tuyaos SDK开发疑惑与咨询

我们试了下,增加上报了 卡未挂载的状态,唤醒后就不会报 卡异常了,谢谢。

然后还想问下,为什么我们在唤醒时触发门铃呼叫,APP 没有弹窗呢,看打印似乎没啥问题,是一定要 判断p2p或者ringbuffer的状态才可以呼叫吗 ?如果是的话,具体需要判断什么呢 ?

[01-01 08:00:04 ty D][19c4][mqc_app.c:800] Send MQTT Msg.P:43 N:5355 Q:1 Data:{"etype":"ac_doorbell","edata":"fda8145c4","devId":"6c2c8b39f393967153jcf5","filename":"4.jpeg","time":"4"}

[08-06 18:37:24 ty D][f1a4][upload_notification.c:1596] final:{"v":"5.0","cost_time":"6526","cmd":"ipc_doorbell","type":"image","with":"resource","alarm":true,"time":4,"files":[["ty-cn-storage30-1254153901","/648577-212900777-CCCCCCCCCCCC/unify/4.jpeg","1fb009e21cf34fee","1757068644"]]}

呼叫APP 没有弹窗。谢谢大佬们。

Attachments
session0806-6.log
(190.54 KiB) Downloaded 73 times
User avatar
Passat
Posts: 93

Re: Tuyaos SDK开发疑惑与咨询

Code: Select all

[01-01 08:00:04 ty D][19c4][mqc_app.c:800] Send MQTT Msg.P:43 N:5355 Q:1 Data:{"etype":"ac_doorbell",
  1. 从日志上看发送 ac_doorbell 请求时,设备还未正常上线,且并未同步到正确时间,此功能需要在设备完全上线后使用。
  2. 如以上修改后,仍无法弹窗,可以上传APP日志,并在 APP 板块反馈此问题
hellokernel
Posts: 33

Re: Tuyaos SDK开发疑惑与咨询

好的,谢谢,我们改了下,唤醒后呼叫有APP弹窗了。

还想问下,我们发现预览出图时间比较长,根据文档上说的做优化;

  1. tuya_ipc_get_register_status 判断当前是 E_IPC_ACTIVEATED 状态后才启动音视频业务,但是结果显示失败了。

2.低功耗设备,确认下 P2P 启动是否太晚
p2p启动有往前移,在设备连上mqtt且时间校准ok后调用的tuya_imm_p2p_init,请问启动时机和调用的函数接口正确吗 ?

3.低功耗设备,确认下 mqtt 上线是否太慢
从tuya业务跑起来到MQTT上线,大概花了4、5秒的时间,这个需要怎么优化下呢 ?

//MQTT连接成功
[20250808_14:39:00][01-01 08:00:04 ty I][8f24][ty_sdk_status_callback.c:61] online: network status MQTT connected

//时间校准OK
[20250808_14:39:01][08-08 14:39:01 ty I][6704][main.c:848] SDK is connected to MQTT and time sync ok...

//调用tuya_imm_p2p_init 初始化p2p
[20250808_14:39:02][08-08 14:39:01 ty D][e704][main.c:87] start to init p2p...
[20250808_14:39:03][08-08 14:39:02 ty D][e704][tuya_ipc_p2p.c:5517] P2P init success

//判断tuya_ipc_get_register_status() 为E_IPC_ACTIVEATED后启动音视频业务tuya_ipc_media_stream_init
//但是结果显示失败了
[20250808_14:39:02][08-08 14:39:01 ty D][5d44][main.c:113] start to init media stream...
[20250808_14:39:05][08-08 14:39:05 ty D][5d44][ty_sdk_media_callback.c:693] media stream init result is -1

Attachments
session0808-6.log
(148.73 KiB) Downloaded 71 times
hellokernel
Posts: 33

Re: Tuyaos SDK开发疑惑与咨询

有没有哪位大佬 帮忙解答下的,多谢了。

郭老庄
Posts: 287

Re: Tuyaos SDK开发疑惑与咨询

tuya_ipc_get_register_status 判断当前是 E_IPC_ACTIVEATED 状态后才启动音视频业务,但是结果显示失败了
A: 具体什么表现,有日志吗

低功耗设备,确认下 P2P 启动是否太晚
A: 可以在MQTT上线前调用

MQTT 上线时间太久
A:因为设备拿到ip的时间太晚了,从设备拿到ip 到mqtt上线其实只用了1s
[20250808_14:38:59][01-01 08:00:03 ty D][8f24][tuya_svc_netmgr_linkage.c:120] link[2][1] is_up[1] active_link[2][1] status[0]
[20250808_14:39:00][01-01 08:00:04 ty I][8f24][ty_sdk_status_callback.c:61] online: network status MQTT connected

[20250808_14:39:05][08-08 14:39:05 ty D][5d44][ty_sdk_media_callback.c:693] media stream init result is -1
A: 因为之前初始化过了,所以报错

hellokernel
Posts: 33

Re: Tuyaos SDK开发疑惑与咨询

1. tuya_ipc_get_register_status 判断当前是 E_IPC_ACTIVEATED 状态后才启动音视频业务,但是结果显示失败了

就是判断tuya_ipc_get_register_status 为 E_IPC_ACTIVEATED后 调用 tuya_ipc_media_stream_init,函数返回值为-1,是失败的;
log 文件里面有,[20250808_14:39:05][08-08 14:39:05 ty D][5d44][ty_sdk_media_callback.c:693] media stream init result is -1
显示拉流失败;

2. [20250808_14:39:05][08-08 14:39:05 ty D][5d44][ty_sdk_media_callback.c:693] media stream init result is -1
A: 因为之前初始化过了,所以报错

之前是谁初始化的 ?libtuyaos.a里面会自动初始化吗 ?
所以对于文档上写的“但是在低功耗设备上,MQTT 本身上线需要时间,在这个等待上线的阶段,可以将音视频的部分业务(不依赖网络的部分)先启动,以提升出流速度。”,具体是要怎么改下呢 ?目前的做法就是
判断当前tuya_ipc_get_register_status是 E_IPC_ACTIVEATED 状态后就启动音视频业务;

3.低功耗设备,确认下 P2P 启动是否太晚
A: 可以在MQTT上线前调用

p2p启动的函数接口是tuya_imm_p2p_init吗 ?如果不是,可以提供下不?

谢谢大佬们。

User avatar
fallen-queen
Posts: 145

Re: Tuyaos SDK开发疑惑与咨询

2.tuya_ipc_media_stream_init是由业务层初始化的,可以检查一下代码,sdk内部不会调用该接口。目前可以根据tuya_ipc_get_register_status是E_IPC_ACTIVATED状态后,初始化该接口。
3.如上面第2点所述,tuya_ipc_get_register_status是E_IPC_ACTIVATED状态后,调用tuya_ipc_media_stream_init。
4.p2p初始化接口就是上面的tuya_ipc_media_stream_init接口。

Post Reply