Page 1 of 1

T1 3.11.31 tbl_light_write_data 报错

Posted: 2025年 Dec 16日 09:44
by Sneak4207

模块:T1-U-HL
SDK:T1-CHL_TUYAOS-3.11.31
开发包:tuyaos_wf_t1_lig-tuyaos_t1_light_ty 1.0.6

打开 local music 功能后,发现通过tbl_light_write_data 写入 dimmer_local_music 时,会报告 data len is too long
对应串口日志如下

[01-01 08:00:06 ty D][4393][ty_app_lig_component.c:83] heapsize :60840 byte
[01-01 08:00:06 ty N][4393][app_light_switch.c:486] save memory switch state:1
[01-01 08:00:06 ty D][4393][tbl_light_dimmer_app_data.c:211] app_tp:1
[01-01 08:00:06 ty D][4393][tbl_light_storage.c:221] write data key:switch
[01-01 08:00:06 ty D][4393][tbl_light_storage.c:222] write data 4 <0x401300>
01 00 00 00

[01-01 08:00:06 ty E][4393][tbl_light_storage.c:211] *********data len is too long*********,key:dimmer_local_music, 463>0
[01-01 08:00:06 ty E][4393][app_dimmer_local_music.c:213] ret:-2
[01-01 08:00:06 ty N][4393][tfm_timing_storage.c:168] storage sucess
[01-01 08:00:06 ty D][4204][mqc_app.c:409] Rev MQTT:{"data":{"t":1765848581714,"reqType":"sntp"},"protocol":19,"s":1204225,"t":1765848581,"type":"update"}
[12-16 09:29:41 ty N][4204][tuya_svc_online_log.c:253] timeout,delete uf local log
[12-16 09:29:41 ty E][437d][tuya_bt_link.c:160] tuya_ble_save_beacon_key err -1
[12-16 09:29:41 ty D][437d][smart_frame.c:4366] rept chan:1

在 __app_dimmer_scene_save_cb 中测试写入一个自定义的key,写入一个字节的内容,也会报告该错误
测试代码:

Code: Select all

#define LIG_KEY_SCENE_ID        "scene_id"

TAL_PR_NOTICE("save scene id %d", sg_scene_info.scene.id);
tbl_light_write_data(LIG_KEY_SCENE_ID, (UCHAR_T *)&sg_scene_info.scene.id, 1);

对应的日志:

[12-16 09:30:44 ty D][4393][ty_app_lig_component.c:83] heapsize :60888 byte
[12-16 09:30:46 ty N][4393][app_dimmer_scene.c:265] save scene id 23
[12-16 09:30:46 ty E][4393][tbl_light_storage.c:211] *********data len is too long*********,key:scene_id, 1>0
[12-16 09:30:46 ty N][4393][tfm_timing_storage.c:168] storage sucess
[12-16 09:30:47 ty D][4393][ty_app_lig_component.c:83] heapsize :60888 byte

相关的代码在 BK7231N 3.8.18 中可以正常使用
在 3.11 版本的 sdk 中,是对 tbl_light_storage 的行为有修改吗?该如何正常使用?


Re: T1 3.11.31 tbl_light_write_data 报错

Posted: 2025年 Dec 16日 10:56
by luffy

T1上面划分的uf比较小,所以在3.11.0以上的版本, 我们对 tbl_light_storage 进行优化,一些数据量比较小的可以调用tbl_light_write_data的接口写入到同一块存储区,具体有:

#define LIG_KEY_SWITCH "switch"
#define LIG_KEY_SWITCH_GRADUAL "sw_gradual"
#define LIG_KEY_MODE "mode"
#define LIG_KEY_DIMMER_SCENE "dimmer_scene"
#define LIG_KEY_DIMMER_CANDLE_SCENE "candle_scene"
#define LIG_KEY_POR_STATE "por_state" //POR: power on reset 上电重启后的状态
#define LIG_KEY_PROD_TEST "prod_test"
#define LIG_KEY_TM_RHYTHM "tm_rhythm"
#define LIG_KEY_TM_SLEEP "tm_sleep"
#define LIG_KEY_TM_WAKE "tm_wake"
#define LIG_KEY_TM_RANDOM "tm_random"
#define LIG_KEY_TM_CYCLE "tm_cycle"
#define LIG_KEY_DO_NOT_DISTURB "tm_do_not_disturb" //勿扰
#define LIG_KEY_POWER_ACTIVE_STATE "active_mode" //上电激活 //其他组件有相同定义,不要修改
#define LIG_KEY_FFC_ENABLE_STATE "ffc_enable" //ffc使能
#define LIG_KEY_DIMMER_PAINT "dimmer_paint"

以上这些可以直接使用tbl_light_storage 接口进行存储。

其他的数据需要使用uf_file去存储,无法使用tbl_light_storage里面的接口


Re: T1 3.11.31 tbl_light_write_data 报错

Posted: 2025年 Dec 16日 11:50
by Sneak4207

好的,谢谢