From 6aa658ce7d8c3a000d24bcbbb25ac991e46b858d Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 16 Jan 2024 21:42:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=AE=8C=E5=AD=98=E5=82=A8=E5=99=A8=E5=90=8E?= =?UTF-8?q?=E5=86=8D=E8=BF=9B=E8=A1=8C=E4=B8=8B=E4=B8=80=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/sys_filesys.c | 13 +--- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 78 ++++++++++--------- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 68 +++++++++++++--- 3 files changed, 101 insertions(+), 58 deletions(-) diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index 63d07cfca..ab0857fa7 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -74,17 +74,8 @@ static void card_insert_job(void) SF_RtosStrgRegister(0, ret); #endif #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE == sf_check_card_full()) - { - DBG_WRN("ERR card full\r\n"); - fastboot_set_done(BOOT_INIT_FILESYSOK); - } - else - { - fastboot_set_done(BOOT_INIT_FILESYSOK); - //sf_log_confg(); - //sf_log_open(); - } + sf_check_card_full(); + fastboot_set_done(BOOT_INIT_FILESYSOK); #endif printf("filesys_init e\r\n"); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index cd5130988..fdcdd46d3 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -1027,8 +1027,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) } } } - char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); + //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; + //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_AddDBfileEx(handle, pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName); @@ -1341,7 +1341,7 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr return E_OK; } -static void MovieFast_FileNaming_Init(void) +static void MovieFast_FileNaming_Init(MMC_DEV_TYPE dev_type) { static UINT8 is_init = 0; @@ -1373,7 +1373,7 @@ static void MovieFast_FileNaming_Init(void) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetDirFreeChars(DCF_DIR_NAME); - //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME)); } THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) @@ -1385,49 +1385,57 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) .WorkbuffAddr = mempool_dcf, .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; + DCF_OPEN_PARM dcfParm2 = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; - //fastboot_wait_done(BOOT_INIT_FILESYSOK); - if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) { - if(gpio_getPin(GPIO_CARD_DETECT) == 0) - { - fastboot_msg_en(ENABLE); - } - DBG_ERR(" FILESYS TIMEOUT failed\r\n"); - //THREAD_RETURN(1); - if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) - { - //fastboot_msg_en(ENABLE); - DBG_ERR(" FILESYS TIMEOUT failed 2\r\n"); - //THREAD_RETURN(1); - } + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); } - MovieFast_FileNaming_Init(); - if(g_dcf_hdl == -1){ - g_dcf_hdl = DCF_Open(&dcfParm); - DCF_ScanObjEx(g_dcf_hdl); - } - else{ - DBG_WRN("dcf handle1 is already opened\n"); - } + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); - #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE != sf_is_card_full()) - #endif + if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK)) { -#if USE_RTOS_MMC_CHECK - //SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl); -#endif + MovieFast_FileNaming_Init(MMC_DEV_EMMC); + if(g_dcf_hdl2 == -1){ + g_dcf_hdl2 = DCF_Open(&dcfParm2); + DCF_ScanObjEx(g_dcf_hdl2); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + } + else if((TRUE != sf_is_card_full()) && (ret == E_OK)) + { + MovieFast_FileNaming_Init(MMC_DEV_SD); + if(g_dcf_hdl == -1){ + g_dcf_hdl = DCF_Open(&dcfParm); + DCF_ScanObjEx(g_dcf_hdl); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } fastboot_set_done(BOOT_INIT_FILENAMINGOK); } - } - + else + { + fastboot_msg_en(ENABLE); + DBG_ERR(" FILESYS TIMEOUT failed\r\n"); + } + } THREAD_RETURN(0); } THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) { + #if 0 if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ #if (FS_MULTI_STRG_FUNC) @@ -1475,7 +1483,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) } #endif } - + #endif THREAD_RETURN(0); } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 1cc380cc3..c4f54d3df 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -716,7 +716,7 @@ HD_RESULT PhotoFast_get_hd_common_buf(PPHOTOFAST_HD_COM_BUF p_hd_comm_buf) return HD_OK; } -static void PhotoFast_FileNaming_Init(void) +static void PhotoFast_FileNaming_Init(MMC_DEV_TYPE dev_type) { static UINT8 is_init = 0; @@ -731,7 +731,7 @@ static void PhotoFast_FileNaming_Init(void) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetDirFreeChars(DCF_DIR_NAME); - //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME)); } INT32 PhotoFast_FileNaming_Open(void) @@ -742,7 +742,7 @@ INT32 PhotoFast_FileNaming_Open(void) .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; - PhotoFast_FileNaming_Init(); + PhotoFast_FileNaming_Init(MMC_DEV_SD); if(g_dcf_hdl == -1){ g_dcf_hdl = DCF_Open(&dcfParm); @@ -772,7 +772,7 @@ INT32 PhotoFast_FileNaming_Open2(void) .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; - PhotoFast_FileNaming_Init(); + PhotoFast_FileNaming_Init(MMC_DEV_EMMC); if(g_dcf_hdl2 == -1){ g_dcf_hdl2 = DCF_Open(&dcfParm); @@ -1091,8 +1091,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, } } } - char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); + //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; + //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath); DCF_AddDBfileEx(handle, FilePath); DBG_DUMP("%s added to DCF\r\n", FilePath); @@ -1598,20 +1598,64 @@ static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame) THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) { + DCF_OPEN_PARM dcfParm = { + .Drive = 'A', + .WorkbuffAddr = mempool_dcf, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; + DCF_OPEN_PARM dcfParm2 = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; - fastboot_wait_done(BOOT_INIT_FILESYSOK); - PhotoFast_FileNaming_Open(); - fastboot_set_done(BOOT_INIT_FILENAMINGOK); + INT32 ret = E_SYS; + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + } + + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + + if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK)) + { + PhotoFast_FileNaming_Init(MMC_DEV_EMMC); + if(g_dcf_hdl2 == -1){ + g_dcf_hdl2 = DCF_Open(&dcfParm2); + DCF_ScanObjEx(g_dcf_hdl2); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + } + else if((TRUE != sf_is_card_full()) && (ret == E_OK)) + { + PhotoFast_FileNaming_Init(MMC_DEV_SD); + if(g_dcf_hdl == -1){ + g_dcf_hdl = DCF_Open(&dcfParm); + DCF_ScanObjEx(g_dcf_hdl); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK); + } + else + { + fastboot_msg_en(ENABLE); + DBG_ERR(" FILESYS TIMEOUT failed\r\n"); + } THREAD_RETURN(0); } THREAD_RETTYPE PhotoFast_InitFileNamingThread2(void *arg) { - fastboot_wait_done(BOOT_INIT_FILESYSOK_2); - PhotoFast_FileNaming_Open2(); - fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + // fastboot_wait_done(BOOT_INIT_FILESYSOK_2); + // PhotoFast_FileNaming_Open2(); + // fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); THREAD_RETURN(0); }