Re: Tuyaos SDK开发疑惑与咨询
- stop 消息只会在APP接听后再挂断时发出。
- 在接听前点击挂断则不会有任何消息。
想问下,低功耗设备在休眠时会卸载sd卡,然后通过APP预览唤醒设备(唤醒瞬间会先挂载sd卡),当进入到预览界面时,会弹出卡异常的状态,推测应该是这个tuya_ipc_sd_get_status 调用的有些慢导致 卡的实际状态上报的慢,导致APP还是保持休眠时卡异常的状态,请问这个有无方法优化下的。
谢谢大佬们。
我们试了下,增加上报了 卡未挂载的状态,唤醒后就不会报 卡异常了,谢谢。
然后还想问下,为什么我们在唤醒时触发门铃呼叫,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 没有弹窗。谢谢大佬们。
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",
好的,谢谢,我们改了下,唤醒后呼叫有APP弹窗了。
还想问下,我们发现预览出图时间比较长,根据文档上说的做优化;
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
有没有哪位大佬 帮忙解答下的,多谢了。
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: 因为之前初始化过了,所以报错
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吗 ?如果不是,可以提供下不?
谢谢大佬们。
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接口。