From a582922f6e68608c7a831dc018f32eeba00dab03 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 22 Jan 2024 10:19:34 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B0=91=E4=BA=8E30M=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E8=AE=B0=E5=BD=95log=E5=92=8Cqlog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/System/SF_SysStrgMng.c | 6 +++++ .../source/cardv/SrcCode/System/SysStrg_Exe.c | 2 +- .../sf_app/code/source/app/sf_service.c | 8 +++++++ .../source/sifar/code/include/sf_sd_common.h | 4 +++- .../sifar/code/source/common/sf_sd_common.c | 22 ++++++++++++++++++- .../source/cardv/SrcCode/System/rtos-main.c | 2 +- 6 files changed, 40 insertions(+), 4 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index f790f63cc..707270bdb 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -144,6 +144,12 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) if(diskFree < MIN_FREE_SIZE_MB) /* 30MB*/ { ret = 1; + if(mmc_dev == MMC_DEV_SD){ + sf_set_sd_card_full(1); + } + else { + sf_set_emmc_card_full(1); + } } else { diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index b07c8deee..6e6d38efd 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -382,7 +382,7 @@ void sf_log_sava(void) UIMenuStoreInfo *puiPara = sf_ui_para_get(); struct tm current_time2 = {0}; char tmp[64] = {'\0'}; - if(((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) + if((((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) && ((TRUE != sf_is_card_full()))) { DBG_DUMP("LogFile_Close ...\n"); current_time2 = hwclock_get_time(TIME_ID_CURRENT); diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 770762419..8154b064f 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -163,6 +163,8 @@ static SINT16 app_Qlog_procress(void) { char qlogDirCmd[128] = {0}; time_t timep; struct tm *p; + SF_STORE_ATTR_S storeattrs = {0}; + if(SF_FAILURE == sf_check_sd()) { MLOGE("ERROR sf_check_sd\n"); @@ -174,6 +176,12 @@ static SINT16 app_Qlog_procress(void) { free(file_path); return SF_FAILURE; } + sf_activity_info_get(&storeattrs); + if (storeattrs.SDFree < 30) /* 30MB */ + { + MLOGE("Card FULL\n"); + return SF_FAILURE; + } time(&timep); p = gmtime(&timep); if (access(file_path, F_OK) != 0) { diff --git a/code/lib/source/sifar/code/include/sf_sd_common.h b/code/lib/source/sifar/code/include/sf_sd_common.h index 6a3d371ed..426ef4bc0 100644 --- a/code/lib/source/sifar/code/include/sf_sd_common.h +++ b/code/lib/source/sifar/code/include/sf_sd_common.h @@ -10,7 +10,9 @@ typedef enum sf_MSG_FORMAT_SD_e }SF_MSG_FORMAT_SD_E; BOOL sf_is_card_full(void); - +BOOL sf_is_emmc_full(void); +void sf_set_emmc_card_full(BOOL val); +void sf_set_sd_card_full(BOOL val); typedef BOOL (*SF_CALLBACK_SD_CMD)(void); void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB); diff --git a/code/lib/source/sifar/code/source/common/sf_sd_common.c b/code/lib/source/sifar/code/source/common/sf_sd_common.c index 2d9ff3b49..0b49424f5 100644 --- a/code/lib/source/sifar/code/source/common/sf_sd_common.c +++ b/code/lib/source/sifar/code/source/common/sf_sd_common.c @@ -47,7 +47,8 @@ SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; static int formatSD = CMD_FORMAT_SD_ERR; - +static BOOL IsCardFull = FALSE; +static BOOL IsEmmcFull = FALSE; void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) { @@ -85,3 +86,22 @@ UINT32 sf_get_card_statu(void) return formatSD; } +BOOL sf_is_card_full(void) +{ + return IsCardFull; +} + +void sf_set_sd_card_full(BOOL val) +{ + IsCardFull = val; +} + +BOOL sf_is_emmc_full(void) +{ + //printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull); + return IsEmmcFull; +} +void sf_set_emmc_card_full(BOOL val) +{ + IsEmmcFull = val; +} \ No newline at end of file diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index cce0b6576..432a9faf5 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -167,7 +167,7 @@ void sf_log_sava(void) UIMenuStoreInfo *puiPara = sf_ui_para_get(); struct tm current_time2 = {0}; char tmp[64] = {'\0'}; - if(((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) + if((((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) && ((TRUE != sf_is_card_full()) || (TRUE != sf_is_emmc_full()))) { DBG_DUMP("LogFile_Close ...\n"); current_time2 = hwclock_get_time(TIME_ID_CURRENT);