1) 开发包全名
ty_integrated_sdk-TuyaOS2.3.5_ty_integrated_sdk_3.4.2-beta.8_linux_rockchip_rk3308_release_0.0.8.tar.gz
2) 问题现象
程序启动时获取的dp点数据均为默认值,操作设备后状态可以正常更新
3) 操作流程
启动程序后打印所有设备状态
4) 问题时间
11-09 15:58:43:94
5) 相关图片资料
6) debug日志
1885行打印设备状态
1) 开发包全名
ty_integrated_sdk-TuyaOS2.3.5_ty_integrated_sdk_3.4.2-beta.8_linux_rockchip_rk3308_release_0.0.8.tar.gz
2) 问题现象
程序启动时获取的dp点数据均为默认值,操作设备后状态可以正常更新
3) 操作流程
启动程序后打印所有设备状态
4) 问题时间
11-09 15:58:43:94
5) 相关图片资料
6) debug日志
1885行打印设备状态
问题原因:启动时,SDK还未获取到设备的当前数据,就调用了tuya_home_ctrl_dev_open,导致无法获取到设备的实际数据
解决方案:请参考demo,user_iot_intf.c文件中tuya_home_init_ex的cbs.all_info_sync_cb,回调接口。该接口会通知应用,设备/房间/场景同步完成。请在同步完成后,再调用tuya_home_ctrl_dev_open。
all_info_sync_cb已配置,等待1分钟打印停止后才获取设备列表,log中只触发了tuya_home_control_all_info_sync_event 3情景同步事件
Code: Select all
[01-01 08:00:08:674 TUYA E][tuya_ctrl_sync.c:228] call gw_thread_pool_start_tm_msg(ctrl_mgr.thr_hdl, ctrl_mgr.tmm_sync, delay, TIMER_ONCE) return -2
[01-01 08:00:08:675 TUYA E][tuya_ctrl_mqc.c:713] call tuya_ctrl_sync_all_info(TY_MQ_CONN_SYNC_DELAY_TM) return -2
启动同步设备信息的定时器的时候失败了,失败原因是定时器不存在。但是创建定时器没有失败打印,说明定时器创建是成功的。
同时,日志中有以下打印
Code: Select all
[01-01 18:12:15 TUYA E][tuya_local_ir_control.c:128] mkdir ir lib /tmpir_code error! ret = -1
错误原因是/tmpir_code下无法创建目录,导致SDK初始化错误。初始化错误后,会逆初始化,删除掉之前创建的定时器。引发该问题。
解决方法:tuya_home_control_init.c的第一个入参tuya_home_init_cfg_s.db_path,需要要传入一个可读写的磁盘地址
路径后面加个/,例如/tmp/
可以了,就是路径的问题