问题描述:
在sd卡格式化成功后,触发报警录像,报了“base_path[/mnt/sdcard/DCIM/CHAN0] un writeable” 这个错,无法写卡录像;
“---------record state” 这种打印是tuya_ipc_ss_get_status()的返回值,tuya_ipc_ss_get_status的返回值后面一直是E_STORAGE_UNWRITEABLE 且没有恢复。
谢谢各位。
问题描述:
在sd卡格式化成功后,触发报警录像,报了“base_path[/mnt/sdcard/DCIM/CHAN0] un writeable” 这个错,无法写卡录像;
“---------record state” 这种打印是tuya_ipc_ss_get_status()的返回值,tuya_ipc_ss_get_status的返回值后面一直是E_STORAGE_UNWRITEABLE 且没有恢复。
谢谢各位。
开发者文档中有相关章节。
SDK 需要使用开发者实现的接口 SD_STATUS_E tuya_ipc_sd_get_status(VOID) 来获取卡的状态。
SDK 内部会调用 tuya_ipc_sd_get_status,在返回 SD_STATUS_NORMAL 后,存储目录初始化才能完成。
卡状态获取 tuya_ipc_sd_get_status 由开发者实现,SDK 在卡正常后,才能进行存储功能。
但是后面一直没有恢复呢,就是说,在卡的状态正常后,tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE
//卡状态 上报normal
[20250928_19:51:56][09-28 19:51:55 ty E][fc14][ty_sdk_sd_card.c:242] ----tuya_ipc_sd_get_status:1
[20250928_19:51:56]write_mode set 1 -> 1
//tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE
[20250928_19:51:56]2025/09/28 19:51:57.035 !WARN [doorbell_record_proxy_task][0817]---------record state:5
谢谢各位。
tuya_ipc_sd_get_status 由开发者实现,返回值要与实际情况保持一致。 如有问题需要自行解决。
/**
这个函数是tuya sdk 里面实现的吧。
谢谢各位。
hellokernel 2025年 Oct 9日 11:26但是后面一直没有恢复呢,就是说,在卡的状态正常后,tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE
//卡状态 上报normal
[20250928_19:51:56][09-28 19:51:55 ty E][fc14][ty_sdk_sd_card.c:242] ----tuya_ipc_sd_get_status:1
[20250928_19:51:56]write_mode set 1 -> 1//tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE
[20250928_19:51:56]2025/09/28 19:51:57.035 !WARN [doorbell_record_proxy_task][0817]---------record state:5谢谢各位。
这里说的是 tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE,不是tuya_ipc_sd_get_status,tuya_ipc_sd_get_status这个接口是我们自己实现的;现在的问题是 卡已经上报了normal,但是tuya_ipc_ss_get_status的返回值还是E_STORAGE_UNWRITEABLE;
谢谢各位。
Code: Select all
base_path[/mnt/sdcard/DCIM/CHAN0] un writeable
如果卡状态正常,内部创建文件夹是不会报错的, 如果出现此打印,只能说明卡还未正常。
卡状态正常,模式为事件录像时,使用 tuya_ipc_ss_start_event 才能正确录像
卡的状态有恢复正常的。
问题是,如果一直非常频繁的触发录像,在这个过程中,如果卡的状态发生了变化,如从异常变为正常,在变为正常前触发了录像,此时会报E_STORAGE_UNWRITEABLE以及不能录像,但是在卡的状态变为正常后,还是会继续报E_STORAGE_UNWRITEABLE以及不能录像。
谢谢各位。
如你所述 “在卡转为正常后” 出现 E_STORAGE_UNWRITEABLE,可能原因有
① 在事件录像模式下,触发开始写录像,之后卡异常,SDK自动停止录像,如果卡再次正常后,则需要外部再次调用 tuya_ipc_ss_start_event 后才会继续录像,否则不会自动开启新录像且状态不会变更;
②由你实现的 tuya_ipc_sd_get_status 并不能真实表示卡状态,虽然返回正常,但实际卡仍有问题,导致再次调用start后内部写录像失败,会出现状态 UNWRITEABLE
但日志中未出现再次调用 tuya_ipc_ss_start_event 的记录;
如果为持续录像模式,卡状态正常后,会自动尝试开启录像,写入状态也会自动变更;
SDK 通过 tuya_ipc_sd_get_status 和 tuya_ipc_sd_get_mode_config 获取卡状态和录像模式后,会自动根据状态和模式开启或者关闭写录像