1.卡循环调整

This commit is contained in:
payton 2024-01-17 11:27:56 +08:00
parent 6aa658ce7d
commit 68c0b40b32
4 changed files with 51 additions and 28 deletions

View File

@ -91,6 +91,7 @@ MMC_DEV_TYPE sf_get_strg_dev(void);
char *sf_root_path_strcat(char *path_name);
char *sf_get_root_path(void);
SINT32 sf_activity_info_get(SF_STORE_ATTR_S *pstoreattrs);
SINT32 sf_sd_info_get(SF_STORE_ATTR_S *pstoreattrs);
SINT32 sf_emmc_info_get(SF_STORE_ATTR_S *pstoreattrs);
SINT32 sf_sd_remove_file(const char *path,SINT32 threshold) ;

View File

@ -2676,9 +2676,8 @@ SINT32 sf_power_off_check_sd(void)
{
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SF_STORE_ATTR_S storeattrs = {0};
MMC_DEV_TYPE mmc_dev = MMC_DEV_NO;
SF_STORE_ATTR_S SDstoreattrs = {0};
mmc_dev = sf_get_strg_dev();
/******************** SD cycle *************************/
if((0 == sf_check_sd()) || (sf_get_mode_flag() == 1))
{
@ -2692,10 +2691,10 @@ SINT32 sf_power_off_check_sd(void)
/*check disk free size*/
sf_emmc_info_get(&storeattrs);
sf_sd_info_get(&SDstoreattrs);
if((puiPara->SdLoopSwitch) && (!sf_get_mode_flag()))
{
if((storeattrs.SDStatus == 0) & (storeattrs.SDFree < SDLOOP_REMAIN_SPACE))
if((storeattrs.SDStatus == 0) & (storeattrs.SDFree < SDLOOP_REMAIN_SPACE) && (SDstoreattrs.SDFree < 30))
{
// sf_sd_loopremove(SF_DCIM_DIR);
sf_app_sd_loop();
@ -2704,29 +2703,14 @@ SINT32 sf_power_off_check_sd(void)
}
}
printf("Emmc free=%dM/%dM\n", storeattrs.SDFree, storeattrs.SDTotalSize);
if(mmc_dev != MMC_DEV_EMMC)
printf("SD free=%dM/%dM\n", SDstoreattrs.SDFree, SDstoreattrs.SDTotalSize);
if((SDstoreattrs.SDFree < 30) && (storeattrs.SDFree < 30)) /* 30MB */
{
sf_sd_info_get(&storeattrs);
printf("SD free=%dM/%dM\n", storeattrs.SDFree, storeattrs.SDTotalSize);
if(storeattrs.SDFree < 30) /* 30MB */
{
sf_set_card_full(1);
puiPara->SdFailCount++;
sf_sleep_ms(100);
}
}
else if(storeattrs.SDFree < 30) /* 30MB */
{
if(puiPara->SdLoopSwitch == 0)
{
sf_set_card_full(1);
puiPara->SdFailCount++;
sf_sleep_ms(100);
}
if(mmc_dev == MMC_DEV_EMMC)
{
printf("eMMC is FULL!\n");
}
sf_set_card_full(1);
puiPara->SdFailCount++;
sf_sleep_ms(100);
printf("card is FULL!\n");
}
else
{

View File

@ -616,7 +616,7 @@ static SINT32 sfStrgDevOnActionMount(int dev_id, int result)
if(SF_MCU_STARTUP_ONKEY == startup)
{
SF_STORE_ATTR_S storeattrs = {0};
sf_sd_info_get(&storeattrs);
sf_activity_info_get(&storeattrs);
printf("SD free=%dM/%dM\n", storeattrs.SDFree, storeattrs.SDTotalSize);
if (storeattrs.SDFree < 30) /* 30MB */
{

View File

@ -152,7 +152,7 @@ char *sf_root_path_strcat(char *path_name)
return tmp;
}
SINT32 sf_sd_info_get(SF_STORE_ATTR_S *pstoreattrs)
SINT32 sf_activity_info_get(SF_STORE_ATTR_S *pstoreattrs)
{
SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE);
@ -195,6 +195,44 @@ SINT32 sf_sd_info_get(SF_STORE_ATTR_S *pstoreattrs)
return SF_FAILURE;
}
MLOGD("ActiveStorage:Status = %d,Free = %d MB,TotalSize = %d MB\n", pstoreattrs->SDStatus, pstoreattrs->SDFree,pstoreattrs->SDTotalSize);
return SF_SUCCESS;
}
SINT32 sf_sd_info_get(SF_STORE_ATTR_S *pstoreattrs)
{
SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE);
SINT32 fd = -1;
fd = open(SF_SD_ROOT, O_RDONLY,0);
if(fd >= 0)
{
struct statfs diskInfo;
statfs(SF_SD_ROOT, &diskInfo);
if(diskInfo.f_bsize > 1024)
{
pstoreattrs->SDTotalSize = (diskInfo.f_blocks * (diskInfo.f_bsize >> 10)) >> 10 ; //blocks * 4096 / 1024 /1024 = MB
pstoreattrs->SDFree = (diskInfo.f_bavail * (diskInfo.f_bsize >> 10)) >> 10 ;
}
else
{
pstoreattrs->SDTotalSize = (diskInfo.f_blocks * diskInfo.f_bsize) >> 10 ; //blocks * 4096 / 1024 /1024 = MB
pstoreattrs->SDFree = (diskInfo.f_bavail * diskInfo.f_bsize) >> 10 ;
}
close(fd);
if(pstoreattrs->SDTotalSize > 0)
pstoreattrs->SDStatus = 0; //SD card SUCESS
else
pstoreattrs->SDStatus = 2; //SD card ERROR
}
else
{
pstoreattrs->SDStatus = 1; //SD card not insert
pstoreattrs->SDFree = 0;
pstoreattrs->SDTotalSize = 0;
return SF_FAILURE;
}
MLOGD("SDStatus = %d,SDFree = %d MB,SDTotalSize = %d MB\n", pstoreattrs->SDStatus, pstoreattrs->SDFree,pstoreattrs->SDTotalSize);
return SF_SUCCESS;
}