Merge branch 'Branch_S550_Fast_Emmc' of 192.168.6.216:linux-em-group/s530-ntk into Branch_S550_Emmc
This commit is contained in:
		
						commit
						916b6d5985
					
				| 
						 | 
				
			
			@ -71,8 +71,6 @@ insmod /etc/lib/modules/$KERVER/extra/fs/exfat/exfat.ko
 | 
			
		|||
# fi
 | 
			
		||||
 | 
			
		||||
#mdev -s
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ -d "/sys/class/block/mmcblk0p1" ]; then
 | 
			
		||||
    mknod /dev/mmcblk0p1 b `cat /sys/class/block/mmcblk0p1/dev | sed "s/:/\ /g"`
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			@ -81,6 +79,66 @@ if [ -d "/sys/class/block/mmcblk1p1" ]; then
 | 
			
		|||
    mknod /dev/mmcblk1p1 b `cat /sys/class/block/mmcblk1p1/dev | sed "s/:/\ /g"`                        
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ -d "/sys/class/block/mmcblk0" ]; then  
 | 
			
		||||
    if [ ! -b /dev/mmcblk0 ]; then 
 | 
			
		||||
        mknod /dev/mmcblk0 b `cat /sys/class/block/mmcblk0/dev | sed "s/:/\ /g"`
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -d "/sys/class/block/mmcblk1" ]; then  
 | 
			
		||||
    if [ ! -b /dev/mmcblk1 ]; then   
 | 
			
		||||
        mknod /dev/mmcblk1 b `cat /sys/class/block/mmcblk1/dev | sed "s/:/\ /g"`
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
                      
 | 
			
		||||
if [ -d "/sys/class/block/mmcblk0p1" ]; then
 | 
			
		||||
    if [ ! -b /dev/mmcblk0p1 ]; then
 | 
			
		||||
        mknod /dev/mmcblk0p1 b `cat /sys/class/block/mmcblk0p1/dev | sed "s/:/\ /g"` 
 | 
			
		||||
    fi                       
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
disk="/dev/mmcblk1"
 | 
			
		||||
disk_part="/dev/mmcblk1p1"
 | 
			
		||||
#flag="$1"
 | 
			
		||||
 | 
			
		||||
partition_func() {
 | 
			
		||||
  fdisk "$disk" <<EOF
 | 
			
		||||
d
 | 
			
		||||
n
 | 
			
		||||
p
 | 
			
		||||
1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
w
 | 
			
		||||
EOF
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ -d "/sys/class/block/mmcblk1p1" ]; then   
 | 
			
		||||
	if [ ! -b "/dev/mmcblk1p1" ]; then
 | 
			
		||||
        	mknod /dev/mmcblk1p1 b `cat /sys/class/block/mmcblk1p1/dev | sed "s/:/\ /g"`
 | 
			
		||||
    	fi
 | 
			
		||||
else
 | 
			
		||||
	partition_func
 | 
			
		||||
	if [ ! -b "/dev/mmcblk1p1" ]; then
 | 
			
		||||
        	mknod /dev/mmcblk1p1 b `cat /sys/class/block/mmcblk1p1/dev | sed "s/:/\ /g"`
 | 
			
		||||
    	fi    
 | 
			
		||||
    
 | 
			
		||||
    	if [ -b "/dev/mmcblk1p1" ]; then
 | 
			
		||||
		mkfs.vfat /dev/mmcblk1p1  
 | 
			
		||||
        	#mount /dev/mmcblk1p1 /mnt/sd2
 | 
			
		||||
		mount -t vfat -o rw,errors=continue /dev/mmcblk1p1  /mnt/sd2
 | 
			
		||||
		
 | 
			
		||||
		#create DCIM for emmc
 | 
			
		||||
		if [ ! -d "/mnt/sd2/DCIM" ]; then
 | 
			
		||||
        		mkdir -p /mnt/sd2/DCIM
 | 
			
		||||
    		fi
 | 
			
		||||
    	fi   
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Scan for without insert card
 | 
			
		||||
if [ ! -f /tmp/.nvt_mounts ]; then
 | 
			
		||||
    /etc/mdev-script/autosd.sh
 | 
			
		||||
| 
						 | 
				
			
			@ -88,5 +146,12 @@ if [ ! -f /tmp/.nvt_mounts ]; then
 | 
			
		|||
fi
 | 
			
		||||
 | 
			
		||||
# mount emmc node mmcblk1p1 to sd2
 | 
			
		||||
mount -t vfat -o rw,errors=continue /dev/mmcblk1p1  /mnt/sd2
 | 
			
		||||
if [ -b "/dev/mmcblk1p1" ]; then
 | 
			
		||||
	mount -t vfat -o rw,errors=continue /dev/mmcblk1p1  /mnt/sd2
 | 
			
		||||
	
 | 
			
		||||
	#create DCIM for emmc
 | 
			
		||||
	if [ ! -d "/mnt/sd2/DCIM" ]; then
 | 
			
		||||
        	mkdir -p /mnt/sd2/DCIM
 | 
			
		||||
    	fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -924,7 +924,7 @@
 | 
			
		|||
#define HUNTING_MCU_UART				ENABLE
 | 
			
		||||
#define HUNTING_IR_LED_940				ENABLE
 | 
			
		||||
#define SF_EXIF_MN_BUF_SIZE		256
 | 
			
		||||
#define SF_BASE_VERSION				    "7MR5RCw4102"
 | 
			
		||||
#define SF_BASE_VERSION				    "7MR5RCwE101"
 | 
			
		||||
#define HW_S530 DISABLE
 | 
			
		||||
#define DCF_DIR_NAME					"MEDIA" /* 100MEDIA */
 | 
			
		||||
#define DCF_FILE_NAME					"SYGW"  /* SYFW0001.JPG */
 | 
			
		||||
| 
						 | 
				
			
			@ -984,7 +984,9 @@
 | 
			
		|||
#define SF_SD_LOG_INFO_FILENAME        "/tmp/SD.txt"
 | 
			
		||||
 | 
			
		||||
#define SF_4G_MODE_TEST                 DISABLE
 | 
			
		||||
 | 
			
		||||
#define SF_AGEING_TEST				DISABLE
 | 
			
		||||
#define SF_AGEING_EMMC_TEST			DISABLE
 | 
			
		||||
#define SF_AGEING_SD_TEST			DISABLE
 | 
			
		||||
#define SF_DCIM_PATH 				":\\DCIM\\"
 | 
			
		||||
//////////////////////sf end///////////////////////////////
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,10 @@
 | 
			
		|||
#include <sf_param_struct.h>
 | 
			
		||||
#include <FileSysTsk.h>
 | 
			
		||||
#include "sf_mcu.h"
 | 
			
		||||
#if (USE_DCF == ENABLE)
 | 
			
		||||
#include "DCF.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
#include <sf_message_queue.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +42,7 @@ SF_THREAD_S MMCMonitorTskCfg =
 | 
			
		|||
    .TskId = -1,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define MIN_DISK_FREE_SIZE_MB 30
 | 
			
		||||
#define MIN_DISK_FREE_SIZE_MB 300
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SF_ST_MMC_DEV *sf_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
 | 
			
		||||
| 
						 | 
				
			
			@ -336,6 +340,12 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
 | 
			
		|||
		sf_mmc_dev[workable_dev]->dev_type = workable_dev;
 | 
			
		||||
		//MLOGD("Strg Check, workable_dev = %d\n", workable_dev);
 | 
			
		||||
		SF_SetMMCDev(sf_mmc_dev[workable_dev]);
 | 
			
		||||
		
 | 
			
		||||
		if(workable_dev == MMC_DEV_SD)
 | 
			
		||||
			DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYEX");
 | 
			
		||||
		else if(workable_dev == MMC_DEV_EMMC)
 | 
			
		||||
			DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYBX");	
 | 
			
		||||
		
 | 
			
		||||
		return sf_mmc_dev[workable_dev];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -873,7 +873,7 @@ exit:
 | 
			
		|||
    #endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
	//System_PowerOffStart();
 | 
			
		||||
	System_PowerOffStart();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -244,7 +244,7 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
 | 
			
		|||
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    sf_cardv_para_check_start();
 | 
			
		||||
    sf_cardv_wifi_start();
 | 
			
		||||
    //sf_cardv_wifi_start();
 | 
			
		||||
    #endif
 | 
			
		||||
    
 | 
			
		||||
#if (UCTRL_FUNC)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -478,7 +478,7 @@ void System_OnStrgInit_FS(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, DCF_FILE_NAME);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -759,6 +759,12 @@ INT32 System_Set_Storage_Act_Drive(char drive)
 | 
			
		|||
 | 
			
		||||
DCF_HANDLE System_Get_DCF_Handle(void)
 | 
			
		||||
{
 | 
			
		||||
#if SF_AGEING_EMMC_TEST == ENABLE
 | 
			
		||||
    return 0;//emmc
 | 
			
		||||
#endif
 | 
			
		||||
#if SF_AGEING_SD_TEST == ENABLE
 | 
			
		||||
    return 1;//sd
 | 
			
		||||
#endif
 | 
			
		||||
	#if USE_MMC_DEV_CHECK
 | 
			
		||||
	SF_ST_MMC_DEV *mmc_dev = SF_GetMMCDev();
 | 
			
		||||
	if(mmc_dev == NULL)
 | 
			
		||||
| 
						 | 
				
			
			@ -983,9 +989,11 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
 | 
			
		|||
		if(strg_id == STRG_ID_SD){
 | 
			
		||||
			DBG_WRN("sd act\n");
 | 
			
		||||
			System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
 | 
			
		||||
			//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYEX");
 | 
			
		||||
		}
 | 
			
		||||
		else if(strg_id == STRG_ID_EMMC){
 | 
			
		||||
			DBG_WRN("emmc act\n");
 | 
			
		||||
			//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYBX");
 | 
			
		||||
			System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
 | 
			
		||||
		}
 | 
			
		||||
		#if	USE_MMC_DEV_CHECK
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -871,7 +871,7 @@ UINT32 BackgroundFormatEmmc(void)
 | 
			
		|||
	//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
 | 
			
		||||
	//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
 | 
			
		||||
	//ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE);
 | 
			
		||||
	FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_CARD1);
 | 
			
		||||
	FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_EMBMEM8);
 | 
			
		||||
	//FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
 | 
			
		||||
	DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
 | 
			
		||||
	//#NT#2016/05/30#Lincy Lin -begin
 | 
			
		||||
| 
						 | 
				
			
			@ -973,7 +973,9 @@ UINT32 BackgroundFormatCard(void)
 | 
			
		|||
	//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
 | 
			
		||||
	//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
 | 
			
		||||
	//ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE);
 | 
			
		||||
	FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_CARD1);
 | 
			
		||||
	//FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_CARD1);
 | 
			
		||||
	FS_HANDLE pStrgDXH = 0;
 | 
			
		||||
	FileSys_GetStrgObj(&pStrgDXH);
 | 
			
		||||
    //FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
 | 
			
		||||
    DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
 | 
			
		||||
	//#NT#2016/05/30#Lincy Lin -begin
 | 
			
		||||
| 
						 | 
				
			
			@ -996,6 +998,9 @@ UINT32 BackgroundFormatCard(void)
 | 
			
		|||
	//#NT#2016/05/30#Lincy Lin -end
 | 
			
		||||
	ret = FileSys_FormatDisk(pStrgDXH, FALSE);
 | 
			
		||||
	DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret);
 | 
			
		||||
	
 | 
			
		||||
	//ret = FileSys_FormatAndLabel('A', pStrgDXH, FALSE, NULL);
 | 
			
		||||
	//DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret);
 | 
			
		||||
 | 
			
		||||
    if (ret == FST_STA_OK) {
 | 
			
		||||
		// reset file ID (for FileDB)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1224,10 +1224,13 @@ BOOL MovieExe_CheckSNFull(void)
 | 
			
		|||
 | 
			
		||||
static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
	char font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'E';
 | 
			
		||||
	char *dcf_file = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? "SYBX" : "SYEX";
 | 
			
		||||
	DBG_DUMP("movie naming: %c %s\n", System_Get_DCF_Disk_Drive(dcf_handle), dcf_file);
 | 
			
		||||
	DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file);
 | 
			
		||||
#if USE_FILEDB
 | 
			
		||||
    static struct tm   CurDateTime = {0};
 | 
			
		||||
 | 
			
		||||
	g_FileSerialNum++;
 | 
			
		||||
 | 
			
		||||
	if (g_FileSerialNum > FILE_SN_MAX) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1256,20 +1259,21 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
#endif
 | 
			
		||||
#elif USE_DCF
 | 
			
		||||
 | 
			
		||||
    UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
 | 
			
		||||
    //UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
 | 
			
		||||
	UINT32 nextFolderID = 0, nextFileID = 0;
 | 
			
		||||
 | 
			
		||||
    if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) {
 | 
			
		||||
		DBG_ERR("Exceed max dcf file!\r\n");
 | 
			
		||||
		pFileName[0] = '\0';
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
		DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
 | 
			
		||||
		DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
 | 
			
		||||
        DCF_AddDBfileEx(dcf_handle, pFileName);
 | 
			
		||||
        DBG_DUMP("%s added to DCF Path%lu\r\n", pFileName, dcf_handle);
 | 
			
		||||
        DBG_DUMP("MovieExe %s added to DCF Path%lu\r\n", pFileName, dcf_handle);
 | 
			
		||||
        #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
        char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
 | 
			
		||||
        sprintf(tmp, "S%03d%04d.JPG", nextFolderID, nextFileID);
 | 
			
		||||
        sprintf(tmp, "S%c%03d%04d.JPG", font, nextFolderID, nextFileID);
 | 
			
		||||
		if(id == _CFG_REC_ID_1){
 | 
			
		||||
			snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -1296,6 +1300,10 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
 | 
			
		||||
static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		||||
{
 | 
			
		||||
	UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
	char *dcf_file = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? "SYBX" : "SYEX";
 | 
			
		||||
	DBG_DUMP("photo naming: %c %s\n", System_Get_DCF_Disk_Drive(dcf_handle), dcf_file);
 | 
			
		||||
	DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file);
 | 
			
		||||
#if USE_FILEDB
 | 
			
		||||
 | 
			
		||||
    static struct tm   CurDateTime = {0};
 | 
			
		||||
| 
						 | 
				
			
			@ -1327,12 +1335,14 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
#elif USE_DCF
 | 
			
		||||
 | 
			
		||||
	UINT32 nextFolderID = 0, nextFileID = 0;
 | 
			
		||||
	UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
 | 
			
		||||
	//UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
 | 
			
		||||
 | 
			
		||||
    if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) {
 | 
			
		||||
		DBG_ERR("Exceed max dcf file!\r\n");
 | 
			
		||||
		pFileName[0] = '\0';
 | 
			
		||||
	} else {
 | 
			
		||||
		DBG_DUMP("JPG %s added to DCF Path%lu\r\n", pFileName, dcf_handle);
 | 
			
		||||
 | 
			
		||||
		DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
 | 
			
		||||
		DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2002,10 +2002,11 @@ int XML_GetPictureEnd(char *path, char *argument, HFS_U32 bufAddr, HFS_U32 *bufS
 | 
			
		|||
		DBG_ERR("storage full\r\n");
 | 
			
		||||
	} else
 | 
			
		||||
	#endif
 | 
			
		||||
	if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR) {
 | 
			
		||||
		result = WIFIAPP_RET_FILE_ERROR;
 | 
			
		||||
		DBG_ERR("write file fail\r\n");
 | 
			
		||||
	} else {
 | 
			
		||||
	//if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR) {
 | 
			
		||||
		//result = WIFIAPP_RET_FILE_ERROR;
 | 
			
		||||
		//DBG_ERR("write file fail\r\n");
 | 
			
		||||
	//} else 
 | 
			
		||||
	{
 | 
			
		||||
	    #if 0
 | 
			
		||||
        //not support get file after capture,get from file list
 | 
			
		||||
        result = 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6884,6 +6884,7 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
 | 
			
		|||
			char* file_path = ImageApp_Photo_GetLastWriteFilePath();
 | 
			
		||||
			char tmp[256] = {'\0'};
 | 
			
		||||
			UINT32 length = strlen(file_path);
 | 
			
		||||
			char  font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'E';
 | 
			
		||||
#if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
			char folder[4], number[5];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -6893,14 +6894,14 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
 | 
			
		|||
			strncpy(number, file_path + length - 8, 4);
 | 
			
		||||
			number[4] = '\0';
 | 
			
		||||
 | 
			
		||||
			snprintf(tmp, sizeof(tmp), "%c%sW%s%s.JPG", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
			snprintf(tmp, sizeof(tmp), "%c%sW%c%s%s.JPG", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, font, folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
 | 
			
		||||
#else			
 | 
			
		||||
			
 | 
			
		||||
			snprintf(tmp, sizeof(tmp), "%c%s%s", System_Get_DCF_Disk_Drive(dcf_handle), PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */
 | 
			
		||||
			snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
 | 
			
		||||
#endif
 | 
			
		||||
			DBG_IND("PHOTO THUMB %s\n", tmp);
 | 
			
		||||
			DBG_DUMP("PHOTO THUMB %s\n", tmp);
 | 
			
		||||
 | 
			
		||||
			FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -6919,8 +6920,10 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
 | 
			
		|||
            else if(SF_CAM_MODE_VIDEO2 == sf_get_cammode_statu()){
 | 
			
		||||
                enFileType = SF_FILE_TYPE_PIC_VIDEO;
 | 
			
		||||
            }
 | 
			
		||||
			snprintf(tmp, sizeof(tmp), "%s%sW%s%s.JPG", System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? SF_EMMC_ROOT : SF_SD_ROOT, SF_SEND_LIST_DIR, folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
			snprintf(tmp2, sizeof(tmp2), "W%s%s.JPG", folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
			snprintf(tmp, sizeof(tmp), "%s%sW%c%s%s.JPG", System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? SF_EMMC_ROOT : SF_SD_ROOT, SF_SEND_LIST_DIR, 
 | 
			
		||||
					 font, folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
			
 | 
			
		||||
			snprintf(tmp2, sizeof(tmp2), "W%c%s%s.JPG", font, folder, number); /* DCF 8.3 naming rule */
 | 
			
		||||
			DBG_DUMP("PHOTO THUMB2 %s \n %s\n", tmp, tmp2);
 | 
			
		||||
            sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, enFileType);
 | 
			
		||||
            if((!sf_get_mode_flag()) || ((FALSE == sf_check_net_work_flag()) && (0 < sf_cardv_get_cq_signal()) && (SF_CAM_MODE_PHOTO == sf_get_cammode_statu())))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -182,10 +182,10 @@ static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
 | 
			
		|||
	UINT32     DCF_DirId = 0, DCF_FileId = 0;
 | 
			
		||||
	BOOL   ret;
 | 
			
		||||
 | 
			
		||||
	if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) {
 | 
			
		||||
		DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n");
 | 
			
		||||
		return TRUE;
 | 
			
		||||
	}
 | 
			
		||||
	//if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) {
 | 
			
		||||
		//DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n");
 | 
			
		||||
		//return TRUE;
 | 
			
		||||
	//}
 | 
			
		||||
	bIsFileReachMax = FALSE;
 | 
			
		||||
#if USE_MMC_DEV_CHECK
 | 
			
		||||
	ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
 | 
			
		||||
| 
						 | 
				
			
			@ -247,7 +247,8 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
 | 
			
		|||
	{
 | 
			
		||||
		FileSys_WaitFinishEx('B');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
	if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
 | 
			
		||||
		|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
 | 
			
		||||
		|| System_GetState(SYS_STATE_FS) == FS_UNFORMATTED
 | 
			
		||||
| 
						 | 
				
			
			@ -259,7 +260,9 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
 | 
			
		|||
	{
 | 
			
		||||
		DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS));
 | 
			
		||||
		return TRUE;
 | 
			
		||||
	} else {
 | 
			
		||||
	} else
 | 
			
		||||
#endif
 | 
			
		||||
	{
 | 
			
		||||
		if (UIStorageCheck_DCIMWritable() == FALSE)
 | 
			
		||||
		{
 | 
			
		||||
            return TRUE;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,9 +25,9 @@ extern void UIFlowPhoto_update_selftimer_cnt(UINT32 time);
 | 
			
		|||
 | 
			
		||||
CHAR *Get_FreePicNumString(UINT32 uiValue)
 | 
			
		||||
{
 | 
			
		||||
	if (System_GetState(SYS_STATE_FS) != FS_INIT_OK)
 | 
			
		||||
	//if (System_GetState(SYS_STATE_FS) != FS_INIT_OK)
 | 
			
		||||
	{
 | 
			
		||||
		return 0;
 | 
			
		||||
		//return 0;
 | 
			
		||||
	}
 | 
			
		||||
	unsigned long fileCount = 0;
 | 
			
		||||
#if USE_MMC_DEV_CHECK
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1806,6 +1806,8 @@ SINT32 sf_hd_ftp_send(void)
 | 
			
		|||
	    return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	char font = sf_get_strg_dev() == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
	
 | 
			
		||||
    sf_set_send_hd(0);
 | 
			
		||||
	sf_custom_str_get(CamNameStr);
 | 
			
		||||
	sf_4G_signal_level_get(sf_get_net_generation(),sf_get_cq_signal(),&csqlevel);
 | 
			
		||||
| 
						 | 
				
			
			@ -1819,7 +1821,7 @@ SINT32 sf_hd_ftp_send(void)
 | 
			
		|||
	{
 | 
			
		||||
        while((sf_app_while_flag()) && (((piccount) < SendFileTotal)) && ((pPara->GprsMode == 1) || ((pSifarPara->subscribeSendCnt < SUBSCRIBE_SEND_MAX_NUM) && (pPara->GprsMode != 1))))
 | 
			
		||||
        {
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%03d%04d.JPG", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%c%03d%04d.JPG", font, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            snprintf((char *)filePath, sizeof(filePath), "%s%s/%s", strg_path, SF_HD_DIR, ftpFileName);
 | 
			
		||||
            free(strg_path);
 | 
			
		||||
            sf_set_del_flag(FALSE);
 | 
			
		||||
| 
						 | 
				
			
			@ -1841,7 +1843,7 @@ SINT32 sf_hd_ftp_send(void)
 | 
			
		|||
            //memset(filePath, '\0', sizeof(filePath));
 | 
			
		||||
 | 
			
		||||
            snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "%sHD-W%03d%04d.JPG", cameraID, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "%sHD-W%c%03d%04d.JPG", cameraID, font, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
 | 
			
		||||
            //snprintf((char *)filePath, sizeof(filePath), "UFS:/W%03d%04d.JPG", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1966,6 +1968,7 @@ UINT32 sf_video_find_file(UINT16 dirKey, UINT16 fileKey, UINT8 *destFname)
 | 
			
		|||
	//UINT8 srcFname[50] = {0};
 | 
			
		||||
 | 
			
		||||
	char *strg_path = sf_get_root_path();
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
	if(strg_path == NULL)
 | 
			
		||||
	{
 | 
			
		||||
		free(strg_path);
 | 
			
		||||
| 
						 | 
				
			
			@ -1978,7 +1981,7 @@ UINT32 sf_video_find_file(UINT16 dirKey, UINT16 fileKey, UINT8 *destFname)
 | 
			
		|||
	{
 | 
			
		||||
		dirKey = fileIndex / 10000;
 | 
			
		||||
		fileKey = fileIndex % 10000;
 | 
			
		||||
		SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.MP4", strg_path, SF_DCIM_DIR, dirKey, DCF_FILE_NAME, fileKey);
 | 
			
		||||
		SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.MP4", strg_path, SF_DCIM_DIR, dirKey, dcf_file, fileKey);
 | 
			
		||||
 | 
			
		||||
		//fileSize = sf_get_file_size(fname);
 | 
			
		||||
        sf_file_size_get(fname,&fileSize);
 | 
			
		||||
| 
						 | 
				
			
			@ -2036,6 +2039,8 @@ SINT32 sf_video_ftp_send(void)
 | 
			
		|||
    double elapsed_time = 0;
 | 
			
		||||
    SINT64 sendEndTime = 0;
 | 
			
		||||
    UINT32 size = 0;
 | 
			
		||||
 | 
			
		||||
	char font = sf_get_strg_dev()  == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
    
 | 
			
		||||
    sf_set_send_video(0);
 | 
			
		||||
	sf_custom_str_get(CamNameStr);
 | 
			
		||||
| 
						 | 
				
			
			@ -2050,7 +2055,7 @@ SINT32 sf_video_ftp_send(void)
 | 
			
		|||
	{
 | 
			
		||||
        while((sf_app_while_flag()) && (((piccount) < SendFileTotal)) && ((pPara->GprsMode == 1) || ((pSifarPara->subscribeVideoSendCnt < SUBSCRIBE_VIDEO_SEND_MAX_NUM) && (pPara->GprsMode != 1))))
 | 
			
		||||
        {
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%03d%04d.MP4", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%c%03d%04d.MP4", font, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            //snprintf((char *)filePath, sizeof(filePath), "%s/%s", SF_HD_DIR, ftpFileName);
 | 
			
		||||
            printf("[%s:%d] piccount:%d dirKey:%d fileKey:%d\n", __FUNCTION__, __LINE__, piccount, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2080,7 +2085,7 @@ SINT32 sf_video_ftp_send(void)
 | 
			
		|||
            //memset(filePath, '\0', sizeof(filePath));
 | 
			
		||||
 | 
			
		||||
            snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "%sW%03d%04d.MP4", cameraID, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
            snprintf((char *)ftpFileName, sizeof(ftpFileName), "%sW%c%03d%04d.MP4", cameraID, font, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
 | 
			
		||||
            //snprintf((char *)filePath, sizeof(filePath), "UFS:/W%03d%04d.MP4", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1976,7 +1976,9 @@ void sf_hd_pic_add_to_list(UINT8 *fileName)
 | 
			
		|||
    SubImgList_t *pList = pSubImgListHead;
 | 
			
		||||
    SubImgList_t *qList = pSubImgListHead;
 | 
			
		||||
    char fname[50] = {0};
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
	printf("[%s:%d] add to list:%s\n", __FUNCTION__, __LINE__, fileName);
 | 
			
		||||
	
 | 
			
		||||
    SF_STRNCPY(tempStr, fileName+1, 3);
 | 
			
		||||
    dirKey = atoi((const char *)tempStr);
 | 
			
		||||
    fileKey = atoi((const char *)fileName+4);
 | 
			
		||||
| 
						 | 
				
			
			@ -1986,7 +1988,7 @@ void sf_hd_pic_add_to_list(UINT8 *fileName)
 | 
			
		|||
		free(strg_path);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
    SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.JPG", strg_path, SF_DCIM_DIR, dirKey, DCF_FILE_NAME, fileKey);
 | 
			
		||||
    SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.JPG", strg_path, SF_DCIM_DIR, dirKey, dcf_file, fileKey);
 | 
			
		||||
	free(strg_path);
 | 
			
		||||
    if(sf_file_IsExsit(fname) != SF_TRUE)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -2117,6 +2119,7 @@ void sf_video_add_to_list(UINT8 *fileName)
 | 
			
		|||
	UINT8 i = 0;
 | 
			
		||||
    UINT16 dirKeytmp = 0;
 | 
			
		||||
    UINT16 fileKeytmp = 0;
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
    printf("add to list:%s\n", fileName);
 | 
			
		||||
 | 
			
		||||
	char *strg_path = sf_get_root_path();
 | 
			
		||||
| 
						 | 
				
			
			@ -2136,7 +2139,7 @@ void sf_video_add_to_list(UINT8 *fileName)
 | 
			
		|||
	{
 | 
			
		||||
		dirKeytmp = fileIndex / 10000;
 | 
			
		||||
		fileKeytmp = fileIndex % 10000;
 | 
			
		||||
        SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.MP4", strg_path, SF_DCIM_DIR, dirKeytmp, DCF_FILE_NAME, fileKeytmp);
 | 
			
		||||
        SF_SPRINTF(fname, "%s%s/%03dMEDIA/%s%04d.MP4", strg_path, SF_DCIM_DIR, dirKeytmp, dcf_file, fileKeytmp);
 | 
			
		||||
		free(strg_path);
 | 
			
		||||
        sf_file_size_get(fname,&fileSize);
 | 
			
		||||
		printf("find video:%s size=%d\n", fname, fileSize);
 | 
			
		||||
| 
						 | 
				
			
			@ -2490,7 +2493,9 @@ 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;
 | 
			
		||||
 | 
			
		||||
    mmc_dev = sf_get_strg_dev();
 | 
			
		||||
	/********************  SD cycle  *************************/
 | 
			
		||||
    if((0 == sf_check_sd()) || (sf_get_mode_flag() == 1))
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -2526,6 +2531,10 @@ SINT32 sf_power_off_check_sd(void)
 | 
			
		|||
                puiPara->SdFailCount++;
 | 
			
		||||
                sf_sleep_ms(100);
 | 
			
		||||
            }
 | 
			
		||||
            if(mmc_dev == MMC_DEV_EMMC)
 | 
			
		||||
            {
 | 
			
		||||
                printf("eMMC is FULL!\n");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -634,6 +634,10 @@ static SINT32 sfStrgDevOnActionMount(int dev_id, int result)
 | 
			
		|||
			{
 | 
			
		||||
				sf_app_mcu_updata_start();
 | 
			
		||||
			}
 | 
			
		||||
            if(dev_id == MMC_DEV_EMMC)
 | 
			
		||||
            {
 | 
			
		||||
                printf("EMMC has Mounted!\r\n");
 | 
			
		||||
            }
 | 
			
		||||
			break;
 | 
			
		||||
		case FST_STA_DISK_UNFORMAT:
 | 
			
		||||
			sf_statistics_param_load(sf_statistics_param_get());
 | 
			
		||||
| 
						 | 
				
			
			@ -646,6 +650,10 @@ static SINT32 sfStrgDevOnActionMount(int dev_id, int result)
 | 
			
		|||
		case FST_STA_CARD_ERR:
 | 
			
		||||
			sf_sys_status_led_set(SF_LED_SYS_STATE_SD_ERROR);
 | 
			
		||||
			MLOGI("^Rcard-%d mount FAIL: Card Error\r\n", dev_id + 1);
 | 
			
		||||
            if(dev_id == MMC_DEV_EMMC)
 | 
			
		||||
            {
 | 
			
		||||
                printf("Mount eMMC Fail!\r\n");
 | 
			
		||||
            }
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			MLOGI("^Rcard-%d mount FAIL: ErrID=%d\r\n", dev_id + 1, status);
 | 
			
		||||
| 
						 | 
				
			
			@ -688,6 +696,7 @@ static SINT32 sfStrgDevEmmcHandler(int cb_evt, int dev_id, int result)
 | 
			
		|||
	{
 | 
			
		||||
		case CMD_SD_STRG_CB_UNKNOWN:
 | 
			
		||||
            sf_set_card_full(1);
 | 
			
		||||
            printf("eMMC is FULL!\r\n");
 | 
			
		||||
            break;
 | 
			
		||||
		
 | 
			
		||||
        case CMD_SD_STRG_CB_MOUNT_FINISH:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -645,12 +645,50 @@ BOOL sf_system_check_bt_ko(void)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BOOL sf_system_check_firmware_class_ko(void)
 | 
			
		||||
{
 | 
			
		||||
    char command[30] = "lsmod | grep firmware_class";
 | 
			
		||||
    FILE *fp = popen(command, "r");
 | 
			
		||||
    char result[256];
 | 
			
		||||
    fgets(result, sizeof(result), fp);
 | 
			
		||||
    pclose(fp);
 | 
			
		||||
    if (result[0] == '\0') {
 | 
			
		||||
        MLOGI("rtk_btusb module is not loaded.\n");
 | 
			
		||||
        return FALSE;
 | 
			
		||||
    } else {
 | 
			
		||||
        MLOGI("rtk_btusb module is loaded.\n");
 | 
			
		||||
        return TRUE;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BOOL sf_load_bt_ko(void)
 | 
			
		||||
{
 | 
			
		||||
    BOOL ret2 = TRUE;
 | 
			
		||||
    int ret = 0;
 | 
			
		||||
    UINT8 i = 0;
 | 
			
		||||
    char cmd[70] = {'\0'};
 | 
			
		||||
    MLOGI("start.\n");
 | 
			
		||||
    if (sf_system_check_bt_ko() == TRUE) 
 | 
			
		||||
    {
 | 
			
		||||
        return ret2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < 50; i++)
 | 
			
		||||
    {
 | 
			
		||||
        if (sf_system_check_firmware_class_ko() == TRUE) 
 | 
			
		||||
        {
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            if(49 == i)
 | 
			
		||||
            {
 | 
			
		||||
                MLOGE("blue setup fall!!\n");
 | 
			
		||||
                return FALSE;
 | 
			
		||||
            }
 | 
			
		||||
            usleep(500 * 1000);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    snprintf(cmd, sizeof(cmd), "insmod %s/kernel/drivers/bluetooth/rtk_btusb.ko", driver_path_prefix);
 | 
			
		||||
    ret = system(cmd);
 | 
			
		||||
    //ret = system("modprobe rtk_btusb");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,15 +91,17 @@ SINT32 app_ttyusb_IsOpen(void) {
 | 
			
		|||
 | 
			
		||||
    UINT8 i = 0;
 | 
			
		||||
 | 
			
		||||
    for (i = 0; i < 40; i++) {
 | 
			
		||||
    for (i = 0; i < 150; i++) {
 | 
			
		||||
        if (access("/dev/ttyUSB2", F_OK) == SF_SUCCESS) {
 | 
			
		||||
            printf("tty usb ko exist!\r\n");
 | 
			
		||||
            printf("4G Init OK\r\n");
 | 
			
		||||
            break;
 | 
			
		||||
        } else {
 | 
			
		||||
            usleep(100 * 1000);
 | 
			
		||||
            if(39 == i)
 | 
			
		||||
            if(149 == i)
 | 
			
		||||
            {
 | 
			
		||||
                MLOGE("NO ttyUSB dev!!\n");
 | 
			
		||||
                printf("4G Init ERR\r\n");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -119,6 +121,7 @@ SINT32 app_ttyusb_IsOpen(void) {
 | 
			
		|||
        {
 | 
			
		||||
            MLOGE("-------ttyUSB retry init fail!\n");
 | 
			
		||||
            s32ret = SF_TTY_ERROR_OPEN;
 | 
			
		||||
            printf("4G Init Fail, retry\r\n");
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -885,6 +888,7 @@ SINT16 sf_thumb_file_creat(void) {
 | 
			
		|||
  	 free(strg_path);
 | 
			
		||||
	 return SF_FAILURE;
 | 
			
		||||
  }
 | 
			
		||||
  char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
  SF_SRCFILE_ATTR_S *fileCfg = sf_file_thumb_cfg_get();
 | 
			
		||||
 | 
			
		||||
  for (fileIndex = 0; fileIndex < fileCfg->filecnt; fileIndex++) {
 | 
			
		||||
| 
						 | 
				
			
			@ -894,7 +898,7 @@ SINT16 sf_thumb_file_creat(void) {
 | 
			
		|||
      strncpy(fileKeyStr, fileCfg->stfileattr[fileIndex].thumbfileName + 4, 8);
 | 
			
		||||
      MLOGD("dirKeyStr:%s, fileKeyStr:%s\n", dirKeyStr, fileKeyStr);
 | 
			
		||||
      sprintf(filePathStr, "%s%s/%s%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,
 | 
			
		||||
              dirKeyStr, SF_DCF_DIR_NAME_SUFFIX, SF_DCF_FILE_NAME_PREFIX,
 | 
			
		||||
              dirKeyStr, dcf_file, SF_DCF_FILE_NAME_PREFIX,
 | 
			
		||||
              fileKeyStr);
 | 
			
		||||
      MLOGD("fileKeyStr:%s\n", filePathStr);
 | 
			
		||||
      // check if pic exist
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1334,6 +1334,22 @@ void sf_do_4g_upgrade_thread(void)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*************************************************
 | 
			
		||||
   Function:    sf_wifi_start_to_cardv
 | 
			
		||||
   Description: wifi on
 | 
			
		||||
   Input:  N/A
 | 
			
		||||
   Output: N/A
 | 
			
		||||
   Return: N/A
 | 
			
		||||
   Others: N/A
 | 
			
		||||
*************************************************/
 | 
			
		||||
void sf_wifi_start_to_cardv(void)
 | 
			
		||||
{
 | 
			
		||||
    SF_MESSAGE_BUF_S stMessageBuf = {0};
 | 
			
		||||
    SLOGI(" CMD_WIFI SF_WIFI_CMD_START\n");
 | 
			
		||||
    stMessageBuf.cmdId = CMD_WIFI;
 | 
			
		||||
    stMessageBuf.arg1 = SF_WIFI_CMD_START;
 | 
			
		||||
    sf_com_message_send_to_cardv(&stMessageBuf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void* sf_app_load_ko_thread(void *arg)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -1344,7 +1360,8 @@ void* sf_app_load_ko_thread(void *arg)
 | 
			
		|||
 | 
			
		||||
    if(PWR_ON_SETUP == sf_poweron_type_get())
 | 
			
		||||
    {
 | 
			
		||||
        sf_load_bt_ko();
 | 
			
		||||
        //sf_load_bt_ko();
 | 
			
		||||
        sf_wifi_start_to_cardv();
 | 
			
		||||
    }
 | 
			
		||||
    /*if((SF_MCU_STARTUP_NORMAL != sf_poweron_type_get()) && (0 == sf_get_fw_update()))
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -1623,9 +1640,21 @@ void* sf_app_mcu_updata_thread(void *arg)
 | 
			
		|||
    MLOGI("MCU_UPGRADE\n");
 | 
			
		||||
    UINT32 McuFsize = 0;
 | 
			
		||||
    SINT8 ret = 0;
 | 
			
		||||
    int sdflag = 0;
 | 
			
		||||
    int emmcflag = 0;
 | 
			
		||||
    char file_path[64] = {0};
 | 
			
		||||
    if((access("/mnt/sd/Mupgrade.bin", F_OK) == 0))
 | 
			
		||||
    {
 | 
			
		||||
        sdflag = 1;
 | 
			
		||||
        snprintf(file_path, sizeof(file_path), "/mnt/sd/Mupgrade.bin");
 | 
			
		||||
 | 
			
		||||
	char *file_path = sf_root_path_strcat(UPGRADE_FIRMWARE_NANE);
 | 
			
		||||
	if(file_path == NULL)
 | 
			
		||||
    }
 | 
			
		||||
    if((access("/mnt/sd2/Mupgrade.bin", F_OK) == 0))
 | 
			
		||||
    {
 | 
			
		||||
        emmcflag = 1;
 | 
			
		||||
        snprintf(file_path, sizeof(file_path), "/mnt/sd2/Mupgrade.bin");
 | 
			
		||||
    }
 | 
			
		||||
	if(emmcflag == 0 && sdflag == 0)
 | 
			
		||||
	{
 | 
			
		||||
        MLOGI(" sf_power_off_msg_to_cardv\n");
 | 
			
		||||
        MLOGE("MCU_UPGRADE no file\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -1634,8 +1663,7 @@ void* sf_app_mcu_updata_thread(void *arg)
 | 
			
		|||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
    ret = Fw_GetFirmwareSize(file_path, &McuFsize);
 | 
			
		||||
    if((sf_in_card_exist() == SF_TRUE) && (access(file_path, F_OK) == 0)
 | 
			
		||||
    && (ret == 0) && (McuFsize > 1024) && (sf_is_enough_power_to_update() == SF_TRUE))
 | 
			
		||||
    if((ret == 0) && (McuFsize > 1024) && (sf_is_enough_power_to_update() == SF_TRUE))
 | 
			
		||||
    {
 | 
			
		||||
        sf_set_mcu_update_flag(SF_TRUE);
 | 
			
		||||
        Fw_UpgradeThreadStart();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -312,6 +312,8 @@ SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SUBSCRIBE_ATTR_S
 | 
			
		|||
	memset(pstfileAttr->txtfileName, '\0', sizeof(pstfileAttr->txtfileName));
 | 
			
		||||
	memset(pstfileAttr->txtfilePath, '\0', sizeof(pstfileAttr->txtfilePath));
 | 
			
		||||
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
 | 
			
		||||
	char *strg_path = sf_get_root_path();
 | 
			
		||||
	if(strg_path == NULL)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -353,7 +355,7 @@ SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SUBSCRIBE_ATTR_S
 | 
			
		|||
			strncpy(fileName, pSubscribe->subscribeFileName + (strlen(pSubscribe->subscribeFileName) - 12), 12);
 | 
			
		||||
			fileKey = atoi(fileName+4);
 | 
			
		||||
			MLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, SF_DCF_DIR_NAME_SUFFIX, SF_DCF_FILE_NAME_PREFIX,fileName+4);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, dcf_file, SF_DCF_FILE_NAME_PREFIX,fileName+4);
 | 
			
		||||
			MLOGD("srcFile:%s\n", filePath);
 | 
			
		||||
 | 
			
		||||
			ret = sf_file_IsExsit((CHAR*)filePath);
 | 
			
		||||
| 
						 | 
				
			
			@ -554,6 +556,7 @@ SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S*
 | 
			
		|||
		free(strg_path);
 | 
			
		||||
		return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
	
 | 
			
		||||
	switch(pSendFileAttr->enFileTye)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -568,7 +571,7 @@ SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S*
 | 
			
		|||
			strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 12), 12);
 | 
			
		||||
			fileKey = atoi(fileName+4);
 | 
			
		||||
			SLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%04d.%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, SF_DCF_DIR_NAME_SUFFIX, SF_DCF_FILE_NAME_PREFIX,fileKey,SF_DCF_EXT_MOV);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%04d.%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, dcf_file, SF_DCF_FILE_NAME_PREFIX,fileKey,SF_DCF_EXT_MOV);
 | 
			
		||||
			SLOGD("srcFile:%s\n", filePath);
 | 
			
		||||
			
 | 
			
		||||
//			strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 11), 8);
 | 
			
		||||
| 
						 | 
				
			
			@ -597,7 +600,7 @@ SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S*
 | 
			
		|||
			strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 12), 12);
 | 
			
		||||
			fileKey = atoi(fileName+4);
 | 
			
		||||
			SLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, SF_DCF_DIR_NAME_SUFFIX, SF_DCF_FILE_NAME_PREFIX,fileName+4);
 | 
			
		||||
			sprintf(filePath, "%s%s/%03d%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,dirKey, dcf_file, SF_DCF_FILE_NAME_PREFIX,fileName+4);
 | 
			
		||||
			SLOGD("srcFile:%s\n", filePath);
 | 
			
		||||
 | 
			
		||||
			ret = sf_file_IsExsit((CHAR*)filePath);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,7 @@
 | 
			
		|||
#include <net/if.h>
 | 
			
		||||
#include "sf_blue_app.h"
 | 
			
		||||
#include "sf_device.h"
 | 
			
		||||
#include "sf_hal_gpio.h"
 | 
			
		||||
 | 
			
		||||
extern int hciconfig_start_advertising(const char *ssid);
 | 
			
		||||
extern int hciconfig_close_device(void);
 | 
			
		||||
| 
						 | 
				
			
			@ -106,6 +107,7 @@ static void sf_bluetooth_power_enable(void)
 | 
			
		|||
    // system("echo 44 > /sys/class/gpio/export");
 | 
			
		||||
    // system("echo out > /sys/class/gpio/gpio44/direction");
 | 
			
		||||
    // system("echo 1 > /sys/class/gpio/gpio44/value");
 | 
			
		||||
    sf_set_bt_en(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*************************************************
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +130,8 @@ static void *sf_bluetooth_piscan_task(void *arg)
 | 
			
		|||
{
 | 
			
		||||
    UINT8 i = 0;
 | 
			
		||||
    sf_bluetooth_power_enable();
 | 
			
		||||
 | 
			
		||||
    sf_load_bt_ko();
 | 
			
		||||
    usleep(100 * 1000);
 | 
			
		||||
    //system("export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/misc:/customer/rocus/lib");
 | 
			
		||||
    //system("adduser messagebus");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -150,16 +153,24 @@ static void *sf_bluetooth_piscan_task(void *arg)
 | 
			
		|||
    //         }
 | 
			
		||||
    //     }
 | 
			
		||||
    // }
 | 
			
		||||
    for (i = 0; i < 40; i++) {
 | 
			
		||||
        if (sf_system_check_bt_ko() == TRUE) {
 | 
			
		||||
    for (i = 0; i < 40; i++)
 | 
			
		||||
    {
 | 
			
		||||
        if (sf_system_check_bt_ko() == TRUE) 
 | 
			
		||||
        {
 | 
			
		||||
            break;
 | 
			
		||||
        } else {
 | 
			
		||||
            usleep(500 * 1000);
 | 
			
		||||
            if(39 == i)
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            if(1 == i)
 | 
			
		||||
            {
 | 
			
		||||
                sf_load_bt_ko();
 | 
			
		||||
            }
 | 
			
		||||
            else if(39 == i)
 | 
			
		||||
            {
 | 
			
		||||
                MLOGE("blue setup fall!!\n");
 | 
			
		||||
                return NULL;
 | 
			
		||||
            }
 | 
			
		||||
            usleep(500 * 1000);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,11 @@ void sf_strg_dev_register(SINT32 dev_id, SINT32 mounted)
 | 
			
		|||
 | 
			
		||||
MMC_DEV_TYPE sf_get_strg_dev(void)
 | 
			
		||||
{
 | 
			
		||||
	return sf_strg_dev->dev_type;
 | 
			
		||||
	if(sf_strg_dev != NULL) {
 | 
			
		||||
		return sf_strg_dev->dev_type;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
		return MMC_DEV_EMMC;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static SINT32 sd_file_Isexsit(SF_CHAR *fileName)
 | 
			
		||||
| 
						 | 
				
			
			@ -290,7 +294,7 @@ SINT32 sf_sd_loopremove(const char *path)
 | 
			
		|||
		SLOGE("open [%s] error!!!\n",path);
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	while(index < dircnt)
 | 
			
		||||
    {
 | 
			
		||||
        MLOGD("d_name: %s\n",namelist[index]->d_name);
 | 
			
		||||
| 
						 | 
				
			
			@ -353,7 +357,7 @@ SINT32 sf_sd_loopremove(const char *path)
 | 
			
		|||
					filedir[2] = *pTemp++;	/*get file group ID*/
 | 
			
		||||
					filedir[3] = '\0';
 | 
			
		||||
					
 | 
			
		||||
					pTemp = strstr(g_cFileList[FileCount], DCF_FILE_NAME);
 | 
			
		||||
					pTemp = strstr(g_cFileList[FileCount], "SYGW");
 | 
			
		||||
					
 | 
			
		||||
					if(pTemp)
 | 
			
		||||
					{
 | 
			
		||||
| 
						 | 
				
			
			@ -878,12 +882,14 @@ int sf_app_sd_loop(void)
 | 
			
		|||
		free(strg_path);
 | 
			
		||||
		return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	char font = sf_get_strg_dev() == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
	char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
	
 | 
			
		||||
    while((nloop) && (dircount < 5))
 | 
			
		||||
    {
 | 
			
		||||
        sprintf(cPathTmp,"%s%s/%03d%s", strg_path, SF_DCF_ROOT_DIR_NAME, nDirKey, DCF_DIR_NAME); // ""/mnt/sd/DCIM/100MEDIA"
 | 
			
		||||
        //Not Empty,Record File Name
 | 
			
		||||
        sprintf(cFileTmp, "%s/%s%04d.%s",cPathTmp, DCF_FILE_NAME, nFileKey, SF_DCF_EXT_PHOTO);
 | 
			
		||||
        sprintf(cFileTmp, "%s/%s%04d.%s",cPathTmp, dcf_file, nFileKey, SF_DCF_EXT_PHOTO);
 | 
			
		||||
 | 
			
		||||
        if(access(cFileTmp,R_OK) == 0)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -893,7 +899,7 @@ int sf_app_sd_loop(void)
 | 
			
		|||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            sprintf(cFileTmp, "%s/%s%04d.%s", cPathTmp, DCF_FILE_NAME, nFileKey, SF_DCF_EXT_MOV);
 | 
			
		||||
            sprintf(cFileTmp, "%s/%s%04d.%s", cPathTmp, dcf_file, nFileKey, SF_DCF_EXT_MOV);
 | 
			
		||||
            if(access(cFileTmp,R_OK) == 0)
 | 
			
		||||
            {
 | 
			
		||||
                MLOGD("Will Delete File Name:%s\n", cFileTmp);
 | 
			
		||||
| 
						 | 
				
			
			@ -919,7 +925,7 @@ int sf_app_sd_loop(void)
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        sprintf(cFileTmp,"%s%s/W%03d%04d.JPG", strg_path, SF_DCF_THM_DIR_NAME, nDirKey, nFileKey);
 | 
			
		||||
        sprintf(cFileTmp,"%s%s/W%c%03d%04d.JPG", strg_path, SF_DCF_THM_DIR_NAME, font, nDirKey, nFileKey);
 | 
			
		||||
        //MLOGD("Thumb Filename:%s\n", cFileTmp);		
 | 
			
		||||
        if(access(cFileTmp,R_OK) == 0)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -927,7 +933,7 @@ int sf_app_sd_loop(void)
 | 
			
		|||
            remove(cFileTmp);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        sprintf(cFileTmp,"%s%s/S%03d%04d.JPG", strg_path, SF_DCF_THM_DIR_NAME, nDirKey, nFileKey);
 | 
			
		||||
        sprintf(cFileTmp,"%s%s/S%c%03d%04d.JPG", strg_path, SF_DCF_THM_DIR_NAME, font, nDirKey, nFileKey);
 | 
			
		||||
        //MLOGD("Thumb Filename:%s\n", cFileTmp);		
 | 
			
		||||
        if(access(cFileTmp,R_OK) == 0)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1197,10 +1197,11 @@ static void * sf_commu_mcu_task(void * argv)
 | 
			
		|||
					}
 | 
			
		||||
					else 
 | 
			
		||||
					{
 | 
			
		||||
                        mcubuf_reset();
 | 
			
		||||
						memcpy(mcu_buf, &buffer[start], copy_size);
 | 
			
		||||
						mcu_buf_len = copy_size;
 | 
			
		||||
						sf_commu_parse_mcu_data(mcu_buf, mcu_buf_len);
 | 
			
		||||
						mcubuf_reset();
 | 
			
		||||
						
 | 
			
		||||
					}
 | 
			
		||||
					start = -1;
 | 
			
		||||
					end = -1;
 | 
			
		||||
| 
						 | 
				
			
			@ -1326,7 +1327,8 @@ int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int
 | 
			
		|||
    int ret = -1;
 | 
			
		||||
    int retries = 0; // 重试次数
 | 
			
		||||
	unsigned int i = 0;
 | 
			
		||||
 | 
			
		||||
	unsigned char	tmpreg[3] = {0};
 | 
			
		||||
	unsigned char	tmpval[3] = {0};
 | 
			
		||||
    if (gsfd == -1)
 | 
			
		||||
        sf_commu_mcu_open();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1351,7 +1353,12 @@ int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int
 | 
			
		|||
                printf("%s:%d error\r\n", __FUNCTION__, __LINE__);
 | 
			
		||||
                ret	= -1;
 | 
			
		||||
                retries++; // 错误时增加重试次数
 | 
			
		||||
 | 
			
		||||
                ret = sf_getRegFromMcu_depack(mcu_buf, mcu_buf_len, &tmpreg[0], &tmpval[0]);
 | 
			
		||||
                if (ret > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    MLOGD("MCU send 0x05, reg_value[%d,%d]\n\n",tmpreg[0], tmpval[0]);
 | 
			
		||||
                    sf_getRegFromMcu_ack(tmpreg[0], tmpval[0]);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            else 
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,14 +97,19 @@ UINT8 sf_mcu_write_multi(UINT8 reg[], UINT8 data[], UINT32 num)
 | 
			
		|||
{
 | 
			
		||||
    UINT32 i;
 | 
			
		||||
    unsigned int pnum = num;
 | 
			
		||||
    for(i = 0; i < num; i++)
 | 
			
		||||
    {
 | 
			
		||||
        printf("W_addr[%d]=0x%02x\n", reg[i], data[i]);
 | 
			
		||||
    }
 | 
			
		||||
	if(0 <= sf_commu_set_mcu_many(reg, data, &pnum))
 | 
			
		||||
	{
 | 
			
		||||
        for(i = 0; i < num; i++)
 | 
			
		||||
    	{
 | 
			
		||||
            printf("W_addr[%d]=0x%02x\n", reg[i], data[i]);
 | 
			
		||||
    	}
 | 
			
		||||
        // for(i = 0; i < num; i++)
 | 
			
		||||
    	// {
 | 
			
		||||
        //     printf("W_addr[%d]=0x%02x\n", reg[i], data[i]);
 | 
			
		||||
    	// }
 | 
			
		||||
        return SUCCESS;
 | 
			
		||||
    }
 | 
			
		||||
    printf("%s:%d FAIL write err\n", __FUNCTION__, __LINE__);
 | 
			
		||||
	return FAIL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,7 @@
 | 
			
		|||
#include <sys/stat.h>
 | 
			
		||||
 | 
			
		||||
#include "sf_common.h"
 | 
			
		||||
#include "sf_log.h"
 | 
			
		||||
#include "sf_mcu_upgrade.h"
 | 
			
		||||
#include "sf_param_common.h"
 | 
			
		||||
#include "sf_ledmng.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -340,11 +341,21 @@ static void * FwUpgradeTask(void * argv)
 | 
			
		|||
	SINT8 param[1] = {0};
 | 
			
		||||
	param[0] = 0;
 | 
			
		||||
 | 
			
		||||
	char *file_path = sf_root_path_strcat(UPGRADE_FIRMWARE_NANE);
 | 
			
		||||
	if(file_path == NULL)
 | 
			
		||||
	//char *file_path = sf_root_path_strcat(UPGRADE_FIRMWARE_NANE);
 | 
			
		||||
    char file_path[64] = {0};
 | 
			
		||||
    memset(file_path, '\0', sizeof(file_path));
 | 
			
		||||
    if((access("/mnt/sd/Mupgrade.bin", F_OK) == 0))
 | 
			
		||||
    {
 | 
			
		||||
        snprintf(file_path, sizeof(file_path), "/mnt/sd/Mupgrade.bin");
 | 
			
		||||
    }
 | 
			
		||||
    if((access("/mnt/sd2/Mupgrade.bin", F_OK) == 0))
 | 
			
		||||
    {
 | 
			
		||||
        snprintf(file_path, sizeof(file_path), "/mnt/sd2/Mupgrade.bin");
 | 
			
		||||
    }
 | 
			
		||||
	if(file_path[0] == '\0')
 | 
			
		||||
	{
 | 
			
		||||
		free(file_path);
 | 
			
		||||
		return;
 | 
			
		||||
        MLOGE("no update file\n");
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	while(FwUpgradeExit == 0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -149,7 +149,7 @@ static PHONE_SHOT_E gPhoneShot = PHONE_SHOT_END;
 | 
			
		|||
extern sem_t gAppSvrSendQueue;
 | 
			
		||||
extern UINT8 StopSendFile;
 | 
			
		||||
extern UINT8 SendingFile;
 | 
			
		||||
 | 
			
		||||
extern DCF_HANDLE System_Get_DCF_Handle(void);
 | 
			
		||||
/**************************************************************************
 | 
			
		||||
 *               F U N C T I O N    D E C L A R A T I O N S               *
 | 
			
		||||
 **************************************************************************/
 | 
			
		||||
| 
						 | 
				
			
			@ -431,6 +431,9 @@ S8 *appThumbKeyToName(thumbSize_t imgSize, thumbType_t fileType, UINT16 dirKey,
 | 
			
		|||
		return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
	char font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'E';
 | 
			
		||||
 | 
			
		||||
    if(imgSize == THUMB_320x240)
 | 
			
		||||
    {
 | 
			
		||||
        sprintf((char *)tempPath, "%s%s/small", strg_path, THUMB_PATH);
 | 
			
		||||
| 
						 | 
				
			
			@ -472,7 +475,7 @@ S8 *appThumbKeyToName(thumbSize_t imgSize, thumbType_t fileType, UINT16 dirKey,
 | 
			
		|||
#endif
 | 
			
		||||
    /****check floder and creat it if that is not exist***end****/
 | 
			
		||||
 | 
			
		||||
    sprintf((char *)fileName, "%s/%03d%1d%04d.JPG", path, dirKey, fileType, fileKey);
 | 
			
		||||
    sprintf((char *)fileName, "%s/%03d%1d%c%04d.JPG", path, dirKey, fileType, font, fileKey);
 | 
			
		||||
    MLOGI("ThumbName:%s", fileName);
 | 
			
		||||
    return fileName;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -701,7 +704,7 @@ UINT8 appCmpFileList(void)
 | 
			
		|||
        //appThumbNameToKey(&fileType, &dirKey, &fileKey, gDevFileList[i].fileNameString);ERROR:dirKey always zero
 | 
			
		||||
        //printf("dirkey=%d\n",dirKey);
 | 
			
		||||
        sprintf(fileName,"D:/DCIM/%.3s%s/%s%.4s%s",
 | 
			
		||||
                gDevFileList[i].fileNameString,DCF_DIR_NAME,DCF_FILE_NAME,gDevFileList[i].fileNameString+4,
 | 
			
		||||
                gDevFileList[i].fileNameString,DCF_DIR_NAME,"SYGW",gDevFileList[i].fileNameString+4,
 | 
			
		||||
                (gDevFileList[i].fileNameString[3] == '0' ? ".JPG" : (gDevFileList[i].fileNameString[3] == '1' ? ".MP4" : ".MP4")));
 | 
			
		||||
        //profLogPrintf(0,"file:%s", fileName);
 | 
			
		||||
        //printf("str:%s,name:%s,\n",gDevFileList[i].fileNameString,fileName);
 | 
			
		||||
| 
						 | 
				
			
			@ -1141,6 +1144,8 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
		return SF_FAILURE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */
 | 
			
		||||
	char *dcf_file = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? "SYBX" : "SYEX";
 | 
			
		||||
 | 
			
		||||
    //printf("[sf_svr_packet_proc]dataLen: %d\n",dataLen);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1359,7 +1364,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                                    strg_path,
 | 
			
		||||
                                    tempbuf2,
 | 
			
		||||
                                    DCF_DIR_NAME,
 | 
			
		||||
                                    DCF_FILE_NAME,
 | 
			
		||||
                                    dcf_file,
 | 
			
		||||
                                    tempbuf+4,
 | 
			
		||||
                                    (tempbuf[3] == '0' ? ".JPG" : (tempbuf[3] == '1' ? ".MP4" : ".MP4")));
 | 
			
		||||
                        }
 | 
			
		||||
| 
						 | 
				
			
			@ -1900,7 +1905,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                                        strg_path,
 | 
			
		||||
                                        tempbuf2,
 | 
			
		||||
                                        DCF_DIR_NAME,
 | 
			
		||||
                                        DCF_FILE_NAME,
 | 
			
		||||
										dcf_file,
 | 
			
		||||
                                        tempbuf+4,
 | 
			
		||||
                                        (tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
 | 
			
		||||
                            }
 | 
			
		||||
| 
						 | 
				
			
			@ -2003,9 +2008,9 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8  *pAppData, UINT16 dataLen)
 | 
			
		|||
                            ret = remove((char *)fileName);
 | 
			
		||||
                            MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
 | 
			
		||||
                            if(fileType == STILL_THUMB)
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.JPG", dirKey, DCF_FILE_NAME, fileKey);
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.JPG", dirKey, dcf_file, fileKey);
 | 
			
		||||
                            else
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.MP4", dirKey, DCF_FILE_NAME, fileKey);
 | 
			
		||||
                                sprintf((char *)fileName,"./%3dMEDIA/%s%04d.MP4", dirKey, dcf_file, fileKey);
 | 
			
		||||
                            ret = remove((char *)fileName);
 | 
			
		||||
 | 
			
		||||
                        }
 | 
			
		||||
| 
						 | 
				
			
			@ -2781,6 +2786,14 @@ void sf_wifi_hw_init(void)
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
	    ret = system("ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up");
 | 
			
		||||
        if(ret == 0)
 | 
			
		||||
        {
 | 
			
		||||
            printf("Wifi Init OK\r\n");
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            printf("Wifi Init ERR\r\n");
 | 
			
		||||
        }
 | 
			
		||||
	    //ret = system("hostapd -ddd /appfs/etc/hostapd/hostapd-8189.conf &");
 | 
			
		||||
	    //ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
 | 
			
		||||
        //FILE *fp;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -208,4 +208,5 @@ BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv);
 | 
			
		|||
void sf_mem_free(void);
 | 
			
		||||
void sf_cardv_battery_level_set(UINT32 val);
 | 
			
		||||
void sf_cardv_statistics_param_reset(void);
 | 
			
		||||
void sf_cardv_set_wifi_en(UINT32 cnt);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,6 +65,8 @@
 | 
			
		|||
#include "sf_4g_lpa.h" 
 | 
			
		||||
#include <sf_wifi_svr.h>
 | 
			
		||||
#include <sf_log.h>
 | 
			
		||||
#include <sf_storeMng.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BOOL isGoing2PowerOff = FALSE;
 | 
			
		||||
UINT16 AutoOfftime = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -1848,7 +1850,7 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
 | 
			
		|||
	switch(pMessageBuf->arg1)
 | 
			
		||||
	{
 | 
			
		||||
		case SF_WIFI_CMD_START:
 | 
			
		||||
            if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()))
 | 
			
		||||
            //if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()))
 | 
			
		||||
                sf_cardv_wifi_start();
 | 
			
		||||
			break;
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -2786,8 +2788,9 @@ UINT32 sf_cardv_wifi_start(void)
 | 
			
		|||
{
 | 
			
		||||
    SINT32 ret = 1;
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
	SLOGI("thread run\n");
 | 
			
		||||
 | 
			
		||||
    if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (puiPara->WifiSwitch))
 | 
			
		||||
    if((0 == sf_is_usb_flag()) && (0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (puiPara->WifiSwitch))
 | 
			
		||||
    {
 | 
			
		||||
        if(WifiTskCfg.IsRun)
 | 
			
		||||
        {	
 | 
			
		||||
| 
						 | 
				
			
			@ -2913,6 +2916,9 @@ void* sf_cardv_hd_cap_thread(void *arg)
 | 
			
		|||
{
 | 
			
		||||
	UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
 | 
			
		||||
    MLOGD(" HD start PowerOnMode:%d\n", PowerOnMode);
 | 
			
		||||
 | 
			
		||||
	char font = sf_get_strg_dev()  == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
    char *font_str = sf_get_strg_dev() == MMC_DEV_EMMC ? "BX" : "EX";
 | 
			
		||||
    if((PWR_ON_SMS == PowerOnMode) || (PWR_ON_TIME_SYNC == PowerOnMode))
 | 
			
		||||
    {
 | 
			
		||||
        //if(TRUE != sf_is_preview())
 | 
			
		||||
| 
						 | 
				
			
			@ -2939,8 +2945,8 @@ void* sf_cardv_hd_cap_thread(void *arg)
 | 
			
		|||
                        //HdflieName
 | 
			
		||||
                        memset(HdflieName, '\0', sizeof(HdflieName));
 | 
			
		||||
                        sf_hd_flag_clear_done(0);
 | 
			
		||||
                        snprintf(HdflieName, sizeof(HdflieName), "W%03d%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, fileCfg->stfileattr[fileIndex].fileKey);
 | 
			
		||||
                        snprintf(str, 64, "A:\\DCIM\\%03d%s\\%s%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, DCF_DIR_NAME, DCF_FILE_NAME, fileCfg->stfileattr[fileIndex].fileKey);
 | 
			
		||||
                        snprintf(HdflieName, sizeof(HdflieName), "W%c%03d%04d.JPG", font, fileCfg->stfileattr[fileIndex].dirKey, fileCfg->stfileattr[fileIndex].fileKey);
 | 
			
		||||
                        snprintf(str, 64, "A:\\DCIM\\%03d%s\\%s%s%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, DCF_DIR_NAME, DCF_FILE_NAME, font_str, fileCfg->stfileattr[fileIndex].fileKey);
 | 
			
		||||
                        printf("%s\n", str);
 | 
			
		||||
                        arg[0] = str;
 | 
			
		||||
                        sf_cmd_transcode_start(arg);
 | 
			
		||||
| 
						 | 
				
			
			@ -3539,3 +3545,15 @@ void sf_cardv_statistics_param_reset(void)
 | 
			
		|||
    sf_com_message_send_to_app(&stMessageBuf);
 | 
			
		||||
    printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sf_cardv_set_wifi_en(UINT32 cnt)
 | 
			
		||||
{
 | 
			
		||||
	static UINT8 state = 0;
 | 
			
		||||
	if(0 == state)
 | 
			
		||||
	{
 | 
			
		||||
        state = 1;
 | 
			
		||||
        gpio_direction_output(SF_WIFI_EN, 1);
 | 
			
		||||
    }
 | 
			
		||||
    gpio_set_value(SF_WIFI_EN, cnt);
 | 
			
		||||
    printf("[%s:%d] e cnt:%d\n", __FUNCTION__, __LINE__,cnt);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -762,6 +762,7 @@ UINT32 sf_gpio_get_status(UINT32 ipin)
 | 
			
		|||
*************************************************/
 | 
			
		||||
void sf_mcu_dataready_ck(UINT8 startMode)
 | 
			
		||||
{
 | 
			
		||||
    static UINT8 McupwrFlag = 0;
 | 
			
		||||
	printf("startMode=%d\n", startMode);
 | 
			
		||||
#if 1
 | 
			
		||||
	if(GxUSB_GetIsUSBPlug())//sf_gpio_get_status(GPIO_INT_USBPLUGIN))
 | 
			
		||||
| 
						 | 
				
			
			@ -787,6 +788,11 @@ void sf_mcu_dataready_ck(UINT8 startMode)
 | 
			
		|||
                sf_set_auto_off_time(0);
 | 
			
		||||
                sf_set_pir_statu_flag(0);
 | 
			
		||||
                sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR);
 | 
			
		||||
                McupwrFlag++;
 | 
			
		||||
            }
 | 
			
		||||
            else if(McupwrFlag){
 | 
			
		||||
                printf("%s:%d power off err\n", __FUNCTION__, __LINE__);
 | 
			
		||||
                system("watchdog -T 1 -t 5 /dev/watchdog");
 | 
			
		||||
            }
 | 
			
		||||
		}
 | 
			
		||||
		else if(startMode == 3) //ON
 | 
			
		||||
| 
						 | 
				
			
			@ -799,13 +805,18 @@ void sf_mcu_dataready_ck(UINT8 startMode)
 | 
			
		|||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		if((startMode == 0) || (startMode == 1))        //PIR MODE: ON->OFF/ ON->SETUP
 | 
			
		||||
        if((startMode == 0) || (startMode == 1))        //PIR MODE: ON->OFF/ ON->SETUP
 | 
			
		||||
		{
 | 
			
		||||
			gModuleSleep = 0;                       //power off 4G module
 | 
			
		||||
            sf_set_power_off_flag(1);
 | 
			
		||||
			printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
 | 
			
		||||
            Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start
 | 
			
		||||
            McupwrFlag++;
 | 
			
		||||
		}
 | 
			
		||||
        else if(McupwrFlag){
 | 
			
		||||
                printf("%s:%d power off err\n", __FUNCTION__, __LINE__);
 | 
			
		||||
                system("watchdog -T 1 -t 5 /dev/watchdog");
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -393,7 +393,7 @@ static void IrCutCtrlThreadInit(void)
 | 
			
		|||
{
 | 
			
		||||
    //DBG_DUMP("\r\n [%s:%d] s \r\n",__FUNCTION__,__LINE__);
 | 
			
		||||
 | 
			
		||||
    g_handle_ir_cut = vos_task_create(IrCutCtrlThread, NULL, "IrCutCtrlThread", 18, 2048);
 | 
			
		||||
    g_handle_ir_cut = vos_task_create(IrCutCtrlThread, NULL, "IrCutCtrlThread", 18, 4096);
 | 
			
		||||
	if(!g_handle_ir_cut){
 | 
			
		||||
		DBG_ERR("[ERROR] IR CUT thread creat failed!\r\n");
 | 
			
		||||
        Delay_DelayMs(80);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -945,7 +945,7 @@
 | 
			
		|||
#define HUNTING_MCU_UART				ENABLE
 | 
			
		||||
#define HUNTING_IR_LED_940				ENABLE
 | 
			
		||||
#define SF_EXIF_MN_BUF_SIZE		256
 | 
			
		||||
#define SF_BASE_VERSION				"7MR5RCw4102"
 | 
			
		||||
#define SF_BASE_VERSION				"7MR5RCwE101"
 | 
			
		||||
#define DCF_DIR_NAME					"MEDIA"   /* 100MEDIA */
 | 
			
		||||
#define DCF_FILE_NAME					"SYGW"    /* SYFW0001.JPG */
 | 
			
		||||
#define PHOTO_THUMB_PATH 				":\\THUMB\\"
 | 
			
		||||
| 
						 | 
				
			
			@ -988,7 +988,9 @@
 | 
			
		|||
#endif
 | 
			
		||||
#define SF_NO_SD_SEND				ENABLE
 | 
			
		||||
#define SF_4G_MODE_TEST                 DISABLE
 | 
			
		||||
 | 
			
		||||
#define SF_AGEING_TEST				DISABLE
 | 
			
		||||
#define SF_AGEING_EMMC_TEST			DISABLE
 | 
			
		||||
#define SF_AGEING_SD_TEST			DISABLE
 | 
			
		||||
////////////////////sf end////////////////////////////////
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -445,7 +445,7 @@ void System_OnStrgInit_FS(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, DCF_FILE_NAME);
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -486,7 +486,7 @@ void System_OnStrgExit_FS(void)
 | 
			
		|||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
        LogFile_Close();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -640,7 +640,7 @@ INT32 System_OnStrgRemove(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
 | 
			
		|||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
			LogFile_Suspend();
 | 
			
		||||
			LogFile_Close();
 | 
			
		||||
| 
						 | 
				
			
			@ -787,7 +787,7 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
 | 
			
		|||
        #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    	UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
 | 
			
		||||
		if ((puiPara->DebugMode) && SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
 | 
			
		||||
		if ((puiPara->AutoLogSwitch) && SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
 | 
			
		||||
        #else
 | 
			
		||||
        if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
 | 
			
		||||
        #endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,6 +114,48 @@ extern void eac_set_phypower(BOOL b_en);
 | 
			
		|||
#if (defined(_NVT_ETHREARCAM_TX_)) && (ETHCAM_EIS == ENABLE)
 | 
			
		||||
extern int gyro_init(void);
 | 
			
		||||
#endif
 | 
			
		||||
_ALIGNED(64) static CHAR gLogFile_Buff[LOGFILE_BUFFER_SIZE]= {0};
 | 
			
		||||
 | 
			
		||||
void sf_log_confgs(void)
 | 
			
		||||
{
 | 
			
		||||
    #if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
	{
 | 
			
		||||
        DBG_WRN("SwTimer_Init\n");
 | 
			
		||||
        SwTimer_Init();         // sw timer
 | 
			
		||||
        {
 | 
			
		||||
            LOGFILE_OPEN    logOpenParm = {0};
 | 
			
		||||
            LOGFILE_CFG   cfg = {0};
 | 
			
		||||
            UINT32          maxFileNum = 32;
 | 
			
		||||
            UINT32          maxFileSize = 0x100000; // 1MB
 | 
			
		||||
            CHAR            rootDir[LOGFILE_ROOT_DIR_MAX_LEN + 1] = "A:\\LOG\\";
 | 
			
		||||
            CHAR            sysErrRootDir[LOGFILE_ROOT_DIR_MAX_LEN + 1] = "A:\\SYS\\";
 | 
			
		||||
            cfg.ConType = LOGFILE_CON_MEM | LOGFILE_CON_UART;
 | 
			
		||||
            cfg.TimeType = LOGFILE_TIME_TYPE_DATETIME;
 | 
			
		||||
            cfg.LogBuffAddr = (UINT32)gLogFile_Buff;
 | 
			
		||||
            cfg.LogBuffSize = sizeof(gLogFile_Buff);
 | 
			
		||||
 | 
			
		||||
            DBG_WRN("LogFile_Config\n");
 | 
			
		||||
            LogFile_Config(&cfg);
 | 
			
		||||
 | 
			
		||||
            logOpenParm.maxFileNum = maxFileNum;
 | 
			
		||||
            logOpenParm.maxFileSize = maxFileSize;
 | 
			
		||||
            logOpenParm.isPreAllocAllFiles = FALSE;
 | 
			
		||||
            logOpenParm.isSaveLastTimeSysErrLog  = FALSE;
 | 
			
		||||
            logOpenParm.lastTimeSysErrLogBuffAddr = 0;
 | 
			
		||||
            logOpenParm.lastTimeSysErrLogBuffSize = 0;
 | 
			
		||||
            logOpenParm.isZeroFile = TRUE;
 | 
			
		||||
            strncpy(logOpenParm.rootDir, rootDir, LOGFILE_ROOT_DIR_MAX_LEN);
 | 
			
		||||
            strncpy(logOpenParm.sysErrRootDir, sysErrRootDir, LOGFILE_ROOT_DIR_MAX_LEN);
 | 
			
		||||
 | 
			
		||||
            DBG_WRN("LogFile_Open\n");
 | 
			
		||||
            LogFile_Open(&logOpenParm);
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
    #endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void insmod_system(void)
 | 
			
		||||
{
 | 
			
		||||
#if (HUNTING_CAMERA_MODEL == ENABLE)
 | 
			
		||||
| 
						 | 
				
			
			@ -196,14 +238,14 @@ static void insmod_system(void)
 | 
			
		|||
    		DBG_ERR("open hwclock failed!\n");
 | 
			
		||||
    	}
 | 
			
		||||
    	else{
 | 
			
		||||
            #if HUNTING_CAMERA_MCU != ENABLE// The time is controlled by the MCU. sf_get_mcu_rtc_set_sys
 | 
			
		||||
            #if 1//HUNTING_CAMERA_MCU != ENABLE// The time is controlled by the MCU. sf_get_mcu_rtc_set_sys
 | 
			
		||||
    		struct tm current_time = {0};
 | 
			
		||||
    		struct tm current_time2 = {0};
 | 
			
		||||
 | 
			
		||||
    		current_time.tm_year = 2001;
 | 
			
		||||
    		current_time.tm_mon = 12;
 | 
			
		||||
    		current_time.tm_mday = 30;
 | 
			
		||||
    		current_time.tm_hour = 6;
 | 
			
		||||
    		current_time.tm_year = 2023;
 | 
			
		||||
    		current_time.tm_mon = 1;
 | 
			
		||||
    		current_time.tm_mday = 1;
 | 
			
		||||
    		current_time.tm_hour = 8;
 | 
			
		||||
    		current_time.tm_min = 0;
 | 
			
		||||
    		current_time.tm_sec = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -216,6 +258,7 @@ static void insmod_system(void)
 | 
			
		|||
            #endif
 | 
			
		||||
 | 
			
		||||
    	}
 | 
			
		||||
 | 
			
		||||
    	vos_perf_list_mark("b_sys", __LINE__, 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1153,13 +1196,7 @@ void rtos_main(void)
 | 
			
		|||
        #if (POWERON_FAST_BOOT_MSG == DISABLE)
 | 
			
		||||
    	fastboot_msg_en(DISABLE);
 | 
			
		||||
        #endif
 | 
			
		||||
        #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
        UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
        if(puiPara->DebugMode == 0)
 | 
			
		||||
        {
 | 
			
		||||
            //fastboot_msg_en(DISABLE);
 | 
			
		||||
        }
 | 
			
		||||
        #endif
 | 
			
		||||
 | 
			
		||||
		VK_TASK_HANDLE vkt_boot = vos_task_create(fastboot_thread, fastboot,  "boot",  9, 10240);
 | 
			
		||||
    	vos_task_resume(vkt_boot);
 | 
			
		||||
    	fastboot_wait_done(BOOT_FLOW_BOOT);
 | 
			
		||||
| 
						 | 
				
			
			@ -1169,12 +1206,6 @@ void rtos_main(void)
 | 
			
		|||
        #if (POWERON_FAST_BOOT_MSG == DISABLE)
 | 
			
		||||
    	fastboot_msg_en(ENABLE);
 | 
			
		||||
        #endif
 | 
			
		||||
        #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
        if(puiPara->DebugMode == 0)
 | 
			
		||||
        {
 | 
			
		||||
           // fastboot_msg_en(ENABLE);
 | 
			
		||||
        }
 | 
			
		||||
        #endif
 | 
			
		||||
 | 
			
		||||
#if (FASTBOOT_KEYSCAN_FUNC == ENABLE)   // enable for keyscan / usb function, but need modify lds file
 | 
			
		||||
		flow_system_init();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,7 +126,9 @@ static void card_insert_job2(void)
 | 
			
		|||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
	SF_RtosStrgRegister(1, ret);
 | 
			
		||||
#endif
 | 
			
		||||
	fastboot_set_done(BOOT_INIT_FILESYSOK_2);
 | 
			
		||||
    sf_check_emmc_full();
 | 
			
		||||
    fastboot_set_done(BOOT_INIT_FILESYSOK_2);
 | 
			
		||||
 | 
			
		||||
	printf("filesys2_init e\r\n");
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +267,7 @@ void sf_log_confg(void)
 | 
			
		|||
{
 | 
			
		||||
    #if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
	{
 | 
			
		||||
		LOGFILE_CFG   cfg = {0};
 | 
			
		||||
		cfg.ConType = LOGFILE_CON_UART|LOGFILE_CON_STORE;
 | 
			
		||||
| 
						 | 
				
			
			@ -287,7 +289,7 @@ void sf_log_open(void)
 | 
			
		|||
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
 | 
			
		||||
    if ((puiPara->DebugMode) && SxTimer_GetFuncActive(SF_SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
 | 
			
		||||
    if ((puiPara->AutoLogSwitch) && SxTimer_GetFuncActive(SF_SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
 | 
			
		||||
    {
 | 
			
		||||
        LOGFILE_OPEN    logOpenParm = {0};
 | 
			
		||||
        UINT32          maxFileNum = 32;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -750,7 +750,7 @@ UINT32 BackgroundFormat(void)
 | 
			
		|||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
        LogFile_Suspend();
 | 
			
		||||
        LogFile_Close();
 | 
			
		||||
| 
						 | 
				
			
			@ -788,7 +788,7 @@ UINT32 BackgroundFormat(void)
 | 
			
		|||
		//#NT#Support logfile function
 | 
			
		||||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
		LogFile_ReOpen();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -826,7 +826,7 @@ UINT32 BackgroundFormatCard(void)
 | 
			
		|||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
        LogFile_Suspend();
 | 
			
		||||
        LogFile_Complete();
 | 
			
		||||
| 
						 | 
				
			
			@ -864,7 +864,7 @@ UINT32 BackgroundFormatCard(void)
 | 
			
		|||
		//#NT#Support logfile function
 | 
			
		||||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
		LogFile_ReOpen();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -894,7 +894,7 @@ UINT32 BackgroundFormatNand(void)
 | 
			
		|||
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
        LogFile_Suspend();
 | 
			
		||||
        LogFile_Complete();
 | 
			
		||||
| 
						 | 
				
			
			@ -932,7 +932,7 @@ UINT32 BackgroundFormatNand(void)
 | 
			
		|||
		//#NT#Support logfile function
 | 
			
		||||
#if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    if(puiPara->DebugMode)
 | 
			
		||||
    if(puiPara->AutoLogSwitch)
 | 
			
		||||
    {
 | 
			
		||||
		LogFile_ReOpen();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -321,6 +321,7 @@ static void MovieFast_ShutDown(void)
 | 
			
		|||
        {
 | 
			
		||||
            DBG_DUMP("LogFile_Close ...\n");
 | 
			
		||||
            LogFile_Suspend();
 | 
			
		||||
            LogFile_DumpToFile("A:\\Log.txt");
 | 
			
		||||
            LogFile_Close();
 | 
			
		||||
        }
 | 
			
		||||
        #endif
 | 
			
		||||
| 
						 | 
				
			
			@ -868,7 +869,12 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
 | 
			
		|||
//#endif
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
 | 
			
		||||
#if SF_AGEING_EMMC_TEST == ENABLE
 | 
			
		||||
    return g_dcf_hdl2;
 | 
			
		||||
#endif
 | 
			
		||||
#if SF_AGEING_SD_TEST == ENABLE
 | 
			
		||||
    return g_dcf_hdl;
 | 
			
		||||
#endif
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
	if(mmc_dev ==NULL)
 | 
			
		||||
| 
						 | 
				
			
			@ -939,12 +945,28 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
    //3. If the working mode is normal and it is cyclic recording, please judge the DirID and FileID by yourself before enering next new file recording.
 | 
			
		||||
	UINT32 nextFolderID = 0, nextFileID = 0;
 | 
			
		||||
    UINT32 max_cnt = 0;
 | 
			
		||||
 | 
			
		||||
#if USE_RTOS_MMC_CHECK        
 | 
			
		||||
    SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
    if(mmc_dev ==NULL)
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("dcf_handle err\n");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (DCF_GetDBInfo(DCF_INFO_IS_9999)) {
 | 
			
		||||
		DBG_ERR("Exceed max dcf file!\r\n");
 | 
			
		||||
		pFileName[0] = '\0';
 | 
			
		||||
	} else {
 | 
			
		||||
		DBG_DUMP("%s\n", __FUNCTION__);
 | 
			
		||||
		DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
 | 
			
		||||
		char font = mmc_dev->dev_type == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
		DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
 | 
			
		||||
        if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -982,12 +1004,14 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
		char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
		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);
 | 
			
		||||
        #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
        char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
 | 
			
		||||
        sprintf(tmp, "S%03ld%04ld.JPG", nextFolderID, nextFileID);
 | 
			
		||||
        sprintf(tmp, "S%c%03ld%04ld.JPG", font, nextFolderID, nextFileID);
 | 
			
		||||
		if(id == _CFG_REC_ID_1){
 | 
			
		||||
			snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -1077,7 +1101,7 @@ static void MovieFast_WriteFile_Task(void* arg)
 | 
			
		|||
 | 
			
		||||
	MovieFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
    if(TRUE == sf_is_card_full())
 | 
			
		||||
    if(TRUE == sf_is_card_full() && TRUE == sf_is_emmc_full())
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("ERR card full\r\n");
 | 
			
		||||
        //return ;
 | 
			
		||||
| 
						 | 
				
			
			@ -1094,7 +1118,7 @@ static void MovieFast_WriteFile_Task(void* arg)
 | 
			
		|||
		if(param->va){
 | 
			
		||||
			DBG_DUMP("Write %s\n", param->path);
 | 
			
		||||
            #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
            if(TRUE != sf_is_card_full())
 | 
			
		||||
            if(TRUE != sf_is_card_full() || TRUE != sf_is_emmc_full())
 | 
			
		||||
            #endif
 | 
			
		||||
            {
 | 
			
		||||
                FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
 | 
			
		||||
| 
						 | 
				
			
			@ -1105,9 +1129,9 @@ static void MovieFast_WriteFile_Task(void* arg)
 | 
			
		|||
			free(param->va);
 | 
			
		||||
		}
 | 
			
		||||
		else if(param->frame.phy_addr[0]){
 | 
			
		||||
			DBG_DUMP("Write %s\n", param->path);
 | 
			
		||||
			DBG_DUMP("Write2 %s\n", param->path);
 | 
			
		||||
            #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
            if(TRUE != sf_is_card_full())
 | 
			
		||||
            if(TRUE != sf_is_card_full() || TRUE != sf_is_emmc_full())
 | 
			
		||||
            #endif
 | 
			
		||||
            {
 | 
			
		||||
                FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
 | 
			
		||||
| 
						 | 
				
			
			@ -1277,6 +1301,23 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr
 | 
			
		|||
static void MovieFast_FileNaming_Init(void)
 | 
			
		||||
{
 | 
			
		||||
	static UINT8 is_init = 0;
 | 
			
		||||
	
 | 
			
		||||
#if 0//USE_RTOS_MMC_CHECK        
 | 
			
		||||
    SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
    if(mmc_dev ==NULL)
 | 
			
		||||
    {
 | 
			
		||||
            DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
            return;
 | 
			
		||||
    }
 | 
			
		||||
    if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
    {
 | 
			
		||||
            DBG_ERR("dcf_handle err\n");
 | 
			
		||||
            return;
 | 
			
		||||
    }
 | 
			
		||||
	//char *font_str = mmc_dev->dev_type == MMC_DEV_EMMC ? "BX" : "EX";
 | 
			
		||||
	//char file_name[64] = {'\0'};
 | 
			
		||||
	//snprintf(file_name, sizeof(file_name), "%s%s", DCF_FILE_NAME, font_str); /* DCF 8.3 naming rule */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if(is_init == 1)
 | 
			
		||||
		return;
 | 
			
		||||
| 
						 | 
				
			
			@ -1289,7 +1330,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, DCF_FILE_NAME);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
 | 
			
		||||
| 
						 | 
				
			
			@ -1358,7 +1399,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
 | 
			
		|||
		DCF_ScanObjEx(g_dcf_hdl2);
 | 
			
		||||
 | 
			
		||||
		#if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
        if(TRUE != sf_is_card_full())
 | 
			
		||||
        if(TRUE != sf_is_emmc_full())
 | 
			
		||||
        #endif
 | 
			
		||||
        {
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -727,7 +727,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, DCF_FILE_NAME);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
INT32 PhotoFast_FileNaming_Open(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -939,6 +939,12 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle()
 | 
			
		|||
	
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
#if SF_AGEING_EMMC_TEST == ENABLE
 | 
			
		||||
    return g_dcf_hdl2;
 | 
			
		||||
#endif
 | 
			
		||||
#if SF_AGEING_SD_TEST == ENABLE
 | 
			
		||||
    return g_dcf_hdl;
 | 
			
		||||
#endif
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
	if(mmc_dev ==NULL)
 | 
			
		||||
| 
						 | 
				
			
			@ -1014,6 +1020,20 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
 | 
			
		|||
	UINT32   nextFolderID = 0, nextFileID = 0;
 | 
			
		||||
	DCF_HANDLE handle = PhotoFast_Get_DCF_Handle(); /* handle determines which storage would be written */
 | 
			
		||||
 | 
			
		||||
#if USE_RTOS_MMC_CHECK        
 | 
			
		||||
    SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
    if(mmc_dev ==NULL)
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
    if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("dcf_handle err\n");
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if(Path == NULL){
 | 
			
		||||
        if (DCF_GetDBInfoEx(handle, DCF_INFO_IS_9999)) {
 | 
			
		||||
            DBG_ERR("Exceed max dcf file!\r\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -1051,6 +1071,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
 | 
			
		|||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
			char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? "SYBX" : "SYEX";
 | 
			
		||||
			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);
 | 
			
		||||
| 
						 | 
				
			
			@ -1064,13 +1086,14 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
 | 
			
		|||
	char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
 | 
			
		||||
	char str1[5] = { 0 };
 | 
			
		||||
	char str2[5] = { 0 };
 | 
			
		||||
	char font = mmc_dev->dev_type == MMC_DEV_EMMC ? 'B' : 'E';
 | 
			
		||||
	memcpy(str1, FilePath + 8, 3);
 | 
			
		||||
    memcpy(str2, FilePath + 21, 4);
 | 
			
		||||
	sprintf(tmp, "W%s%s.JPG", str1, str2);
 | 
			
		||||
	sprintf(tmp, "W%c%s%s.JPG", font, str1, str2);
 | 
			
		||||
    //sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID);
 | 
			
		||||
	strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1);
 | 
			
		||||
	DBG_IND("last send file:%s\r\n", tmp);
 | 
			
		||||
    if(TRUE == sf_is_card_full())
 | 
			
		||||
    if(TRUE == sf_is_card_full() && TRUE == sf_is_emmc_full())
 | 
			
		||||
    {
 | 
			
		||||
        DBG_ERR("ERR Addr=0x%x,Size=0x%x,Fmt=%d card full\r\n", Addr, Size, Fmt);
 | 
			
		||||
        rt =FST_STA_ERROR;
 | 
			
		||||
| 
						 | 
				
			
			@ -2010,7 +2033,7 @@ exit:
 | 
			
		|||
			#if SF_TRIGGER_TIME_TEST == ENABLE
 | 
			
		||||
			sf_trigger_time_led_cb(0);
 | 
			
		||||
			#endif
 | 
			
		||||
			if((sf_get_power_off_flag()) || (TRUE == sf_is_card_full()))
 | 
			
		||||
			if((sf_get_power_off_flag()) || (TRUE == sf_is_card_full() && TRUE == sf_is_emmc_full()))
 | 
			
		||||
			{
 | 
			
		||||
				vos_flag_set(PHOTOFAST_FLG_ID, FLGPHOTOFAST_SHUTDOWN);
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -2156,10 +2179,11 @@ static void PhotoFast_ShutDown(void)
 | 
			
		|||
        // DBG_DUMP("wait filesys close ...\n");
 | 
			
		||||
        #if (LOGFILE_FUNC==ENABLE)
 | 
			
		||||
        UIMenuStoreInfo *puiPara = sf_ui_para_get();
 | 
			
		||||
        if(puiPara->DebugMode)
 | 
			
		||||
        if(puiPara->AutoLogSwitch)
 | 
			
		||||
        {
 | 
			
		||||
            DBG_DUMP("LogFile_Close ...\n");
 | 
			
		||||
            LogFile_Suspend();
 | 
			
		||||
            LogFile_DumpToFile("A:\\Log.txt");
 | 
			
		||||
            LogFile_Close();
 | 
			
		||||
        }
 | 
			
		||||
        #endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2369,15 +2369,18 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
 | 
			
		|||
 | 
			
		||||
            {
 | 
			
		||||
                char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
 | 
			
		||||
				SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
 | 
			
		||||
                #if !PHOTOFAST_FAST_CLOSE
 | 
			
		||||
                    extern CHAR* PhotoFast_GetLastWriteFilePath(void);
 | 
			
		||||
                    char* file_path = PhotoFast_GetLastWriteFilePath();
 | 
			
		||||
                #else
 | 
			
		||||
                    char file_path[NMC_TOTALFILEPATH_MAX_LEN];
 | 
			
		||||
					
 | 
			
		||||
 | 
			
		||||
                    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
                        sprintf(tmp, "W%03ld%04ld.JPG", queue_ele_in->nextFolderID, queue_ele_in->nextFileID);
 | 
			
		||||
						char font = mmc_dev->dev_type  == MMC_DEV_EMMC  ? 'B' : 'E';
 | 
			
		||||
                        sprintf(tmp, "W%c%03ld%04ld.JPG", font, queue_ele_in->nextFolderID, queue_ele_in->nextFileID);
 | 
			
		||||
                        strncpy(file_path, tmp, strlen(queue_ele_in->file_path) - 1);
 | 
			
		||||
                        DBG_IND("last send file:%s\r\n", file_path);
 | 
			
		||||
                    #else
 | 
			
		||||
| 
						 | 
				
			
			@ -2391,7 +2394,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
 | 
			
		|||
 | 
			
		||||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
	#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
				SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
 | 
			
		||||
				
 | 
			
		||||
				if(mmc_dev != NULL)
 | 
			
		||||
				{
 | 
			
		||||
					if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
| 
						 | 
				
			
			@ -2419,7 +2422,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
 | 
			
		|||
                DBG_IND("PHOTO THUMB %s\n", tmp);
 | 
			
		||||
 | 
			
		||||
                vos_perf_mark(&t3);
 | 
			
		||||
                if(FALSE == sf_is_card_full())
 | 
			
		||||
                if((TRUE != sf_is_card_full() && (mmc_dev->dev_type == MMC_DEV_SD)) || (TRUE != sf_is_emmc_full() && (mmc_dev->dev_type == MMC_DEV_EMMC)))
 | 
			
		||||
                {
 | 
			
		||||
                    FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -156,6 +156,8 @@ SECTIONS
 | 
			
		|||
        libzlib.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        libmem.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        libDbgUt.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        liblogfile.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        libSxTimer.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        /* driver */
 | 
			
		||||
        libdrv_portable.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
        libdrv_drtc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
			
		||||
| 
						 | 
				
			
			@ -515,3 +517,6 @@ EXTERN("h264Enc_queryMemSize")
 | 
			
		|||
EXTERN("aud_set_default_setting")
 | 
			
		||||
EXTERN("eac_set_ad_config")
 | 
			
		||||
EXTERN("eac_set_phypower")
 | 
			
		||||
EXTERN("SwTimer_Init")
 | 
			
		||||
EXTERN("LogFile_Config")
 | 
			
		||||
EXTERN("LogFile_Open")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -494,7 +494,8 @@ UINT16 sf_mcu_get_irshtter(void);
 | 
			
		|||
 | 
			
		||||
BOOL sf_is_card_full(void);
 | 
			
		||||
UINT32 sf_check_card_full(void);
 | 
			
		||||
 | 
			
		||||
BOOL sf_is_emmc_full(void);
 | 
			
		||||
UINT32 sf_check_emmc_full(void);
 | 
			
		||||
typedef BOOL (*SF_CALLBACK_SD_CMD)(void);
 | 
			
		||||
 | 
			
		||||
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -356,7 +356,7 @@ void sf_led_init(void)
 | 
			
		|||
 | 
			
		||||
	//vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
 | 
			
		||||
	/*thread creat*/
 | 
			
		||||
   ledTskId = vos_task_create(sf_led_thread, NULL, "sf_led_thread", 25, 2048);
 | 
			
		||||
   ledTskId = vos_task_create(sf_led_thread, NULL, "sf_led_thread", 25, 4096);
 | 
			
		||||
	vos_task_resume(ledTskId);
 | 
			
		||||
     #if HW_S530
 | 
			
		||||
     /*thread creat*/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -767,18 +767,39 @@ UINT32 sf_gpio_get_status(UINT32 ipin)
 | 
			
		|||
}
 | 
			
		||||
UINT32 sf_in_update(void)
 | 
			
		||||
{
 | 
			
		||||
    int i = 0;
 | 
			
		||||
    if((sf_gpio_get_status(GPIO_KEY_TEST)) && (PWR_ON_SETUP == sf_get_power_on_mode()))
 | 
			
		||||
    {
 | 
			
		||||
       return 1;
 | 
			
		||||
        while((sf_gpio_get_status(GPIO_KEY_TEST)) && (10 > i))
 | 
			
		||||
        {
 | 
			
		||||
            i++;
 | 
			
		||||
            vos_util_delay_us(100);
 | 
			
		||||
        }
 | 
			
		||||
        if(10 <= i)
 | 
			
		||||
        {
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
UINT32 sf_in_mcu_update(void)
 | 
			
		||||
{
 | 
			
		||||
    if((sf_gpio_get_status(GPIO_KEY_DOWN)) && (PWR_ON_SETUP == sf_get_power_on_mode())){
 | 
			
		||||
       return 1;
 | 
			
		||||
    int i = 0;
 | 
			
		||||
 | 
			
		||||
    if((sf_gpio_get_status(GPIO_KEY_DOWN)) && (PWR_ON_SETUP == sf_get_power_on_mode()))
 | 
			
		||||
    {
 | 
			
		||||
        while((sf_gpio_get_status(GPIO_KEY_DOWN)) && (10 > i))
 | 
			
		||||
        {
 | 
			
		||||
            i++;
 | 
			
		||||
            vos_util_delay_us(100);
 | 
			
		||||
        }
 | 
			
		||||
        if(10 <= i)
 | 
			
		||||
        {
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if(PWR_ON_MCU_UPDATA == sf_get_power_on_mode()){
 | 
			
		||||
    if(PWR_ON_MCU_UPDATA == sf_get_power_on_mode())
 | 
			
		||||
    {
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,6 +48,7 @@
 | 
			
		|||
static BOOL IsCardFull = FALSE;
 | 
			
		||||
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
 | 
			
		||||
extern BOOL DrvCARD_DetStrgCard(void);
 | 
			
		||||
static BOOL IsEmmcFull = FALSE;
 | 
			
		||||
 | 
			
		||||
SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +93,40 @@ UINT32 sf_check_card_full(void)
 | 
			
		|||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BOOL sf_is_emmc_full(void)
 | 
			
		||||
{
 | 
			
		||||
	//printf("[%s]:%d IsCardFull:%d\n", __FUNCTION__, __LINE__, IsCardFull);
 | 
			
		||||
	return IsEmmcFull;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
UINT32 sf_check_emmc_full(void)
 | 
			
		||||
{
 | 
			
		||||
    UINT64 diskFree = 0;
 | 
			
		||||
    UINT32 ret = 0;
 | 
			
		||||
        
 | 
			
		||||
    /*check disk free size*/
 | 
			
		||||
    diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
 | 
			
		||||
    diskFree = diskFree/1024/1024;
 | 
			
		||||
    
 | 
			
		||||
    if(diskFree < 30) /* 30MB */
 | 
			
		||||
    {
 | 
			
		||||
            ret = TRUE;
 | 
			
		||||
            //if(0 == puiPara->SdLoopSwitch)
 | 
			
		||||
            {
 | 
			
		||||
                    IsCardFull = TRUE;
 | 
			
		||||
            }
 | 
			
		||||
            //printf("%s:%d sd card is full diskFree=%lu",__FUNCTION__,__LINE__,diskFree);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
            ret = FALSE;
 | 
			
		||||
            //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    printf("[%s:%d]emmc diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user