1.合并rtos下emmc修改

This commit is contained in:
payton 2023-12-26 14:58:00 +08:00
parent 11152df385
commit 9baa65f8d5
4 changed files with 74 additions and 49 deletions

View File

@ -102,6 +102,11 @@ static lfqueue_t write_queue = {0};
//local variable //local variable
static DCF_HANDLE g_dcf_hdl = 0; static DCF_HANDLE g_dcf_hdl = 0;
#if (FS_MULTI_STRG_FUNC)
static DCF_HANDLE g_dcf_hdl2 = 0;
#endif
static ID MOVIEFAST_FLG_ID = 0; static ID MOVIEFAST_FLG_ID = 0;
static UINT32 g_moviefast_tsk_run = 1; static UINT32 g_moviefast_tsk_run = 1;
static UINT32 g_moviefast_poweroff_tsk_run = 1; static UINT32 g_moviefast_poweroff_tsk_run = 1;
@ -852,6 +857,16 @@ static void MovieFast_OnRecStop(void)
} }
static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
{
#if (FS_MULTI_STRG_FUNC)
/* check free space here */
return g_dcf_hdl2;
#else
return g_dcf_hdl;
#endif
}
static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
{ {
//1. The FileID and DirID is set at booting. //1. The FileID and DirID is set at booting.
@ -863,7 +878,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
DBG_ERR("Exceed max dcf file!\r\n"); DBG_ERR("Exceed max dcf file!\r\n");
pFileName[0] = '\0'; pFileName[0] = '\0';
} else { } else {
DCF_GetNextID(&nextFolderID,&nextFileID); DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2) if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2)
{ {
Movie2_nextFolderID = nextFolderID; Movie2_nextFolderID = nextFolderID;
@ -900,8 +916,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
} }
} }
} }
DCF_MakeObjPath(nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
DCF_AddDBfile(pFileName); DCF_AddDBfileEx(handle, pFileName);
DBG_DUMP("%s added to DCF\r\n", pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName);
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
@ -1198,6 +1214,26 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
DCF_SetDirFreeChars(DCF_DIR_NAME); DCF_SetDirFreeChars(DCF_DIR_NAME);
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
DCF_ScanObj(); DCF_ScanObj();
#if (FS_MULTI_STRG_FUNC)
{
DCF_OPEN_PARM dcfParm = {
.Drive = 'B',
.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER,
};
g_dcf_hdl2 = DCF_Open(&dcfParm);
if(g_dcf_hdl2 < 0){
DBG_ERR("get dcf handle error!\n");
}
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
DCF_ScanObjEx(g_dcf_hdl2);
}
#endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
if(TRUE != sf_is_card_full()) if(TRUE != sf_is_card_full())
#endif #endif
@ -1894,6 +1930,11 @@ static void MovieFast_Close(void)
EXIT: EXIT:
DCF_Close(g_dcf_hdl); DCF_Close(g_dcf_hdl);
#if (FS_MULTI_STRG_FUNC)
DCF_Close(g_dcf_hdl2);
#endif
DCF_UnInstallID(); DCF_UnInstallID();
vos_flag_destroy(MOVIEFAST_FLG_ID); vos_flag_destroy(MOVIEFAST_FLG_ID);

View File

@ -88,7 +88,11 @@ static CHAR g_photo_fast_write_file_Path[NMC_TOTALFILEPATH_MAX_LE
static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1}; static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1};
static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL; static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL;
static DCF_HANDLE g_dcf_hdl = 0; static DCF_HANDLE g_dcf_hdl = 0;
#if (FS_MULTI_STRG_FUNC)
static DCF_HANDLE g_dcf_hdl2 = 0; static DCF_HANDLE g_dcf_hdl2 = 0;
#endif
static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0};
@ -737,12 +741,6 @@ INT32 PhotoFast_FileNaming_Open(void)
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2); DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE);
// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE);
// 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_ScanObjEx(g_dcf_hdl2); DCF_ScanObjEx(g_dcf_hdl2);
} }
#endif #endif
@ -761,8 +759,10 @@ INT32 PhotoFast_FileNaming_Close(void)
} }
#if (FS_MULTI_STRG_FUNC) #if (FS_MULTI_STRG_FUNC)
DCF_Close(g_dcf_hdl2); if(g_dcf_hdl2 >= 0){
g_dcf_hdl2 = -1; DCF_Close(g_dcf_hdl2);
g_dcf_hdl2 = -1;
}
#endif #endif
DCF_UnInstallID(); DCF_UnInstallID();
@ -881,23 +881,29 @@ void PhotoFast_FileNaming_SetSortBySN(CHAR *pDelimStr, UINT32 nDelimCount, UINT3
DBG_ERR("No set Delim String!!\r\n"); DBG_ERR("No set Delim String!!\r\n");
} }
DCF_HANDLE PhotoFast_Get_DCF_Handle()
{
#if (FS_MULTI_STRG_FUNC)
/* check free space here */
return g_dcf_hdl2;
#else
return g_dcf_hdl;
#endif
}
INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path) INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path)
{ {
FST_FILE fp; FST_FILE fp;
INT32 rt; INT32 rt;
UINT32 Length; UINT32 Length;
CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN]; CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN];
#if FS_MULTI_STRG_FUNC
CHAR FilePath2[NMC_TOTALFILEPATH_MAX_LEN];
#endif
UINT32 fileType; UINT32 fileType;
UINT32 open_flag; UINT32 open_flag;
UINT32 nextFolderID = 0, nextFileID = 0; UINT32 nextFolderID = 0, nextFileID = 0;
DCF_HANDLE handle = PhotoFast_Get_DCF_Handle(); /* handle determines which storage would be written */
if(Path == NULL){ if(Path == NULL){
if (DCF_GetDBInfo(DCF_INFO_IS_9999)) { if (DCF_GetDBInfoEx(handle, DCF_INFO_IS_9999)) {
DBG_ERR("Exceed max dcf file!\r\n"); DBG_ERR("Exceed max dcf file!\r\n");
return FST_STA_NOFREE_SPACE; return FST_STA_NOFREE_SPACE;
} }
@ -908,7 +914,7 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
else{ else{
fileType = DCF_FILE_TYPE_JPG; fileType = DCF_FILE_TYPE_JPG;
} }
DCF_GetNextID(&nextFolderID,&nextFileID); DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2) if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2)
{ {
nextFolderID = Movie2_nextFolderID; nextFolderID = Movie2_nextFolderID;
@ -933,8 +939,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
} }
} }
} }
DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath);
DCF_AddDBfile(FilePath); DCF_AddDBfileEx(handle, FilePath);
DBG_DUMP("%s added to DCF\r\n", FilePath); DBG_DUMP("%s added to DCF\r\n", FilePath);
} }
@ -1004,30 +1010,6 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
DBG_ERR("FileSys_OpenFile fail\r\n"); DBG_ERR("FileSys_OpenFile fail\r\n");
rt =FST_STA_ERROR; rt =FST_STA_ERROR;
} }
#if FS_MULTI_STRG_FUNC
DBG_WRN("write %s\n", FilePath2);
if ((fp = FileSys_OpenFile(FilePath2, open_flag)) != NULL) {
Length = Size;
rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL);
FileSys_FlushFile(fp);
FileSys_CloseFile(fp);
if (rt == FST_STA_OK) {
// DCF_AddDBfile(FilePath);
// DBG_DUMP("%s added to DCF\r\n", FilePath);
} else {
DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt);
}
}else{
DBG_ERR("FileSys_OpenFile fail\r\n");
rt =FST_STA_ERROR;
}
#endif
return rt; return rt;
} }

View File

@ -4,6 +4,7 @@
#include "hd_common.h" #include "hd_common.h"
#include "UIAppPhoto.h" #include "UIAppPhoto.h"
#include <vf_gfx.h> #include <vf_gfx.h>
#include "DCF.h"
#define FLGPHOTOFAST_CHGMODE 0x00000001 #define FLGPHOTOFAST_CHGMODE 0x00000001
#define FLGPHOTOFAST_SHUTDOWN 0x00000002 #define FLGPHOTOFAST_SHUTDOWN 0x00000002
@ -62,5 +63,6 @@ extern BOOL PhotoFast_SetTriggerFrmCnt(UINT32 cnt); /* trigger vcap frame count
UINT32 PhotoFast_GetTriggerFrmCnt(VOID); UINT32 PhotoFast_GetTriggerFrmCnt(VOID);
extern UINT32 PhotoFast_GetTickBufSize(void); extern UINT32 PhotoFast_GetTickBufSize(void);
ER PhotoFast_Movie_Init(void); ER PhotoFast_Movie_Init(void);
DCF_HANDLE PhotoFast_Get_DCF_Handle(void);
#endif //_UIAPP_PHOTO_H_ #endif //_UIAPP_PHOTO_H_

View File

@ -153,10 +153,10 @@ ER AppInit_ModeUSBMSDC(void)
MSDCInfo.msdc_vendor_cb = NULL; MSDCInfo.msdc_vendor_cb = NULL;
//#NT#2016/12/20#Niven Cho -begin //#NT#2016/12/20#Niven Cho -begin
//#NT#MULTI_DRIVE //#NT#MULTI_DRIVE
// #if (FS_MULTI_STRG_FUNC == ENABLE) //#if (FS_MULTI_STRG_FUNC == ENABLE)
// char *pDxName2 = NULL; // char *pDxName2 = NULL;
// DX_HANDLE pStrgDev2 = 0; // DX_HANDLE pStrgDev2 = 0;
// #endif //#endif
pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A); pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A);