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
|
# fi
|
||||||
|
|
||||||
#mdev -s
|
#mdev -s
|
||||||
|
|
||||||
|
|
||||||
if [ -d "/sys/class/block/mmcblk0p1" ]; then
|
if [ -d "/sys/class/block/mmcblk0p1" ]; then
|
||||||
mknod /dev/mmcblk0p1 b `cat /sys/class/block/mmcblk0p1/dev | sed "s/:/\ /g"`
|
mknod /dev/mmcblk0p1 b `cat /sys/class/block/mmcblk0p1/dev | sed "s/:/\ /g"`
|
||||||
fi
|
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"`
|
mknod /dev/mmcblk1p1 b `cat /sys/class/block/mmcblk1p1/dev | sed "s/:/\ /g"`
|
||||||
fi
|
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
|
# Scan for without insert card
|
||||||
if [ ! -f /tmp/.nvt_mounts ]; then
|
if [ ! -f /tmp/.nvt_mounts ]; then
|
||||||
/etc/mdev-script/autosd.sh
|
/etc/mdev-script/autosd.sh
|
||||||
|
@ -88,5 +146,12 @@ if [ ! -f /tmp/.nvt_mounts ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# mount emmc node mmcblk1p1 to sd2
|
# 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_MCU_UART ENABLE
|
||||||
#define HUNTING_IR_LED_940 ENABLE
|
#define HUNTING_IR_LED_940 ENABLE
|
||||||
#define SF_EXIF_MN_BUF_SIZE 256
|
#define SF_EXIF_MN_BUF_SIZE 256
|
||||||
#define SF_BASE_VERSION "7MR5RCw4102"
|
#define SF_BASE_VERSION "7MR5RCwE101"
|
||||||
#define HW_S530 DISABLE
|
#define HW_S530 DISABLE
|
||||||
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||||
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
||||||
|
@ -984,7 +984,9 @@
|
||||||
#define SF_SD_LOG_INFO_FILENAME "/tmp/SD.txt"
|
#define SF_SD_LOG_INFO_FILENAME "/tmp/SD.txt"
|
||||||
|
|
||||||
#define SF_4G_MODE_TEST DISABLE
|
#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\\"
|
#define SF_DCIM_PATH ":\\DCIM\\"
|
||||||
//////////////////////sf end///////////////////////////////
|
//////////////////////sf end///////////////////////////////
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
#include <sf_param_struct.h>
|
#include <sf_param_struct.h>
|
||||||
#include <FileSysTsk.h>
|
#include <FileSysTsk.h>
|
||||||
#include "sf_mcu.h"
|
#include "sf_mcu.h"
|
||||||
|
#if (USE_DCF == ENABLE)
|
||||||
|
#include "DCF.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#include <sf_message_queue.h>
|
#include <sf_message_queue.h>
|
||||||
|
@ -38,7 +42,7 @@ SF_THREAD_S MMCMonitorTskCfg =
|
||||||
.TskId = -1,
|
.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};
|
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;
|
sf_mmc_dev[workable_dev]->dev_type = workable_dev;
|
||||||
//MLOGD("Strg Check, workable_dev = %d\n", workable_dev);
|
//MLOGD("Strg Check, workable_dev = %d\n", workable_dev);
|
||||||
SF_SetMMCDev(sf_mmc_dev[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];
|
return sf_mmc_dev[workable_dev];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -873,7 +873,7 @@ exit:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//System_PowerOffStart();
|
System_PowerOffStart();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
sf_cardv_para_check_start();
|
sf_cardv_para_check_start();
|
||||||
sf_cardv_wifi_start();
|
//sf_cardv_wifi_start();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (UCTRL_FUNC)
|
#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_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_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_SetDirFreeChars(DCF_DIR_NAME);
|
||||||
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
|
//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -759,6 +759,12 @@ INT32 System_Set_Storage_Act_Drive(char drive)
|
||||||
|
|
||||||
DCF_HANDLE System_Get_DCF_Handle(void)
|
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
|
#if USE_MMC_DEV_CHECK
|
||||||
SF_ST_MMC_DEV *mmc_dev = SF_GetMMCDev();
|
SF_ST_MMC_DEV *mmc_dev = SF_GetMMCDev();
|
||||||
if(mmc_dev == NULL)
|
if(mmc_dev == NULL)
|
||||||
|
@ -983,9 +989,11 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
if(strg_id == STRG_ID_SD){
|
if(strg_id == STRG_ID_SD){
|
||||||
DBG_WRN("sd act\n");
|
DBG_WRN("sd act\n");
|
||||||
System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
|
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){
|
else if(strg_id == STRG_ID_EMMC){
|
||||||
DBG_WRN("emmc act\n");
|
DBG_WRN("emmc act\n");
|
||||||
|
//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, "SYBX");
|
||||||
System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
|
System_Set_Storage_Act_Drive(g_strg_mapping_table[strg_id].drive);
|
||||||
}
|
}
|
||||||
#if USE_MMC_DEV_CHECK
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
|
@ -871,7 +871,7 @@ UINT32 BackgroundFormatEmmc(void)
|
||||||
//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
|
//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
|
||||||
//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
|
//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
|
||||||
//ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE);
|
//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);
|
//FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
|
||||||
DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
|
DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
|
||||||
//#NT#2016/05/30#Lincy Lin -begin
|
//#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);
|
//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
|
||||||
//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
|
//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
|
||||||
//ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE);
|
//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);
|
//FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
|
||||||
DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
|
DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
|
||||||
//#NT#2016/05/30#Lincy Lin -begin
|
//#NT#2016/05/30#Lincy Lin -begin
|
||||||
|
@ -997,6 +999,9 @@ UINT32 BackgroundFormatCard(void)
|
||||||
ret = FileSys_FormatDisk(pStrgDXH, FALSE);
|
ret = FileSys_FormatDisk(pStrgDXH, FALSE);
|
||||||
DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret);
|
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) {
|
if (ret == FST_STA_OK) {
|
||||||
// reset file ID (for FileDB)
|
// reset file ID (for FileDB)
|
||||||
#if USE_FILEDB
|
#if USE_FILEDB
|
||||||
|
|
|
@ -1224,10 +1224,13 @@ BOOL MovieExe_CheckSNFull(void)
|
||||||
|
|
||||||
static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
|
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
|
#if USE_FILEDB
|
||||||
static struct tm CurDateTime = {0};
|
static struct tm CurDateTime = {0};
|
||||||
|
|
||||||
g_FileSerialNum++;
|
g_FileSerialNum++;
|
||||||
|
|
||||||
if (g_FileSerialNum > FILE_SN_MAX) {
|
if (g_FileSerialNum > FILE_SN_MAX) {
|
||||||
|
@ -1256,20 +1259,21 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
|
||||||
#endif
|
#endif
|
||||||
#elif USE_DCF
|
#elif USE_DCF
|
||||||
|
|
||||||
UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
|
//UINT32 dcf_handle = (UINT32) System_Get_DCF_Handle();
|
||||||
UINT32 nextFolderID = 0, nextFileID = 0;
|
UINT32 nextFolderID = 0, nextFileID = 0;
|
||||||
|
|
||||||
if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) {
|
if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) {
|
||||||
DBG_ERR("Exceed max dcf file!\r\n");
|
DBG_ERR("Exceed max dcf file!\r\n");
|
||||||
pFileName[0] = '\0';
|
pFileName[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
|
DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
|
||||||
DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
|
DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
|
||||||
DCF_AddDBfileEx(dcf_handle, 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
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
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){
|
if(id == _CFG_REC_ID_1){
|
||||||
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
|
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)
|
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
|
#if USE_FILEDB
|
||||||
|
|
||||||
static struct tm CurDateTime = {0};
|
static struct tm CurDateTime = {0};
|
||||||
|
@ -1327,12 +1335,14 @@ static void MovieExe_RawEncodeFileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
|
||||||
#elif USE_DCF
|
#elif USE_DCF
|
||||||
|
|
||||||
UINT32 nextFolderID = 0, nextFileID = 0;
|
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)) {
|
if (DCF_GetDBInfoEx(dcf_handle, DCF_INFO_IS_9999)) {
|
||||||
DBG_ERR("Exceed max dcf file!\r\n");
|
DBG_ERR("Exceed max dcf file!\r\n");
|
||||||
pFileName[0] = '\0';
|
pFileName[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
|
DBG_DUMP("JPG %s added to DCF Path%lu\r\n", pFileName, dcf_handle);
|
||||||
|
|
||||||
DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
|
DCF_GetNextIDEx(dcf_handle, &nextFolderID,&nextFileID);
|
||||||
DCF_MakeObjPathEx(dcf_handle, nextFolderID, nextFileID, DCF_FILE_TYPE_JPG, pFileName);
|
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");
|
DBG_ERR("storage full\r\n");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR) {
|
//if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR) {
|
||||||
result = WIFIAPP_RET_FILE_ERROR;
|
//result = WIFIAPP_RET_FILE_ERROR;
|
||||||
DBG_ERR("write file fail\r\n");
|
//DBG_ERR("write file fail\r\n");
|
||||||
} else {
|
//} else
|
||||||
|
{
|
||||||
#if 0
|
#if 0
|
||||||
//not support get file after capture,get from file list
|
//not support get file after capture,get from file list
|
||||||
result = 0;
|
result = 0;
|
||||||
|
|
|
@ -6884,6 +6884,7 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
|
||||||
char* file_path = ImageApp_Photo_GetLastWriteFilePath();
|
char* file_path = ImageApp_Photo_GetLastWriteFilePath();
|
||||||
char tmp[256] = {'\0'};
|
char tmp[256] = {'\0'};
|
||||||
UINT32 length = strlen(file_path);
|
UINT32 length = strlen(file_path);
|
||||||
|
char font = System_Get_DCF_Disk_Drive(dcf_handle) == 'B' ? 'B' : 'E';
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
char folder[4], number[5];
|
char folder[4], number[5];
|
||||||
|
|
||||||
|
@ -6893,14 +6894,14 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data)
|
||||||
strncpy(number, file_path + length - 8, 4);
|
strncpy(number, file_path + length - 8, 4);
|
||||||
number[4] = '\0';
|
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
|
#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, 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");
|
snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG");
|
||||||
#endif
|
#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);
|
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()){
|
else if(SF_CAM_MODE_VIDEO2 == sf_get_cammode_statu()){
|
||||||
enFileType = SF_FILE_TYPE_PIC_VIDEO;
|
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(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,
|
||||||
snprintf(tmp2, sizeof(tmp2), "W%s%s.JPG", folder, number); /* DCF 8.3 naming rule */
|
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);
|
DBG_DUMP("PHOTO THUMB2 %s \n %s\n", tmp, tmp2);
|
||||||
sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, enFileType);
|
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())))
|
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;
|
UINT32 DCF_DirId = 0, DCF_FileId = 0;
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) {
|
//if (System_GetState(SYS_STATE_FS) == FS_NUM_FULL) {
|
||||||
DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n");
|
//DBG_ERR("UI_Validate_Storage: DIR:999 is existing!\r\n");
|
||||||
return TRUE;
|
//return TRUE;
|
||||||
}
|
//}
|
||||||
bIsFileReachMax = FALSE;
|
bIsFileReachMax = FALSE;
|
||||||
#if USE_MMC_DEV_CHECK
|
#if USE_MMC_DEV_CHECK
|
||||||
ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
|
ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
|
||||||
|
@ -248,6 +248,7 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
|
||||||
FileSys_WaitFinishEx('B');
|
FileSys_WaitFinishEx('B');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
|
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
|
||||||
|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
|
|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
|
||||||
|| System_GetState(SYS_STATE_FS) == FS_UNFORMATTED
|
|| 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));
|
DBG_ERR("UIStorageCheck: %d Card Error\r\n", System_GetState(SYS_STATE_FS));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
} else {
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
if (UIStorageCheck_DCIMWritable() == FALSE)
|
if (UIStorageCheck_DCIMWritable() == FALSE)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -25,9 +25,9 @@ extern void UIFlowPhoto_update_selftimer_cnt(UINT32 time);
|
||||||
|
|
||||||
CHAR *Get_FreePicNumString(UINT32 uiValue)
|
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;
|
unsigned long fileCount = 0;
|
||||||
#if USE_MMC_DEV_CHECK
|
#if USE_MMC_DEV_CHECK
|
||||||
|
|
|
@ -1806,6 +1806,8 @@ SINT32 sf_hd_ftp_send(void)
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char font = sf_get_strg_dev() == MMC_DEV_EMMC ? 'B' : 'E';
|
||||||
|
|
||||||
sf_set_send_hd(0);
|
sf_set_send_hd(0);
|
||||||
sf_custom_str_get(CamNameStr);
|
sf_custom_str_get(CamNameStr);
|
||||||
sf_4G_signal_level_get(sf_get_net_generation(),sf_get_cq_signal(),&csqlevel);
|
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))))
|
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);
|
snprintf((char *)filePath, sizeof(filePath), "%s%s/%s", strg_path, SF_HD_DIR, ftpFileName);
|
||||||
free(strg_path);
|
free(strg_path);
|
||||||
sf_set_del_flag(FALSE);
|
sf_set_del_flag(FALSE);
|
||||||
|
@ -1841,7 +1843,7 @@ SINT32 sf_hd_ftp_send(void)
|
||||||
//memset(filePath, '\0', sizeof(filePath));
|
//memset(filePath, '\0', sizeof(filePath));
|
||||||
|
|
||||||
snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr);
|
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);
|
//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};
|
//UINT8 srcFname[50] = {0};
|
||||||
|
|
||||||
char *strg_path = sf_get_root_path();
|
char *strg_path = sf_get_root_path();
|
||||||
|
char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
|
||||||
if(strg_path == NULL)
|
if(strg_path == NULL)
|
||||||
{
|
{
|
||||||
free(strg_path);
|
free(strg_path);
|
||||||
|
@ -1978,7 +1981,7 @@ UINT32 sf_video_find_file(UINT16 dirKey, UINT16 fileKey, UINT8 *destFname)
|
||||||
{
|
{
|
||||||
dirKey = fileIndex / 10000;
|
dirKey = fileIndex / 10000;
|
||||||
fileKey = 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);
|
//fileSize = sf_get_file_size(fname);
|
||||||
sf_file_size_get(fname,&fileSize);
|
sf_file_size_get(fname,&fileSize);
|
||||||
|
@ -2037,6 +2040,8 @@ SINT32 sf_video_ftp_send(void)
|
||||||
SINT64 sendEndTime = 0;
|
SINT64 sendEndTime = 0;
|
||||||
UINT32 size = 0;
|
UINT32 size = 0;
|
||||||
|
|
||||||
|
char font = sf_get_strg_dev() == MMC_DEV_EMMC ? 'B' : 'E';
|
||||||
|
|
||||||
sf_set_send_video(0);
|
sf_set_send_video(0);
|
||||||
sf_custom_str_get(CamNameStr);
|
sf_custom_str_get(CamNameStr);
|
||||||
sf_4G_signal_level_get(sf_get_net_generation(),sf_get_cq_signal(),&csqlevel);
|
sf_4G_signal_level_get(sf_get_net_generation(),sf_get_cq_signal(),&csqlevel);
|
||||||
|
@ -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))))
|
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);
|
//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);
|
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));
|
//memset(filePath, '\0', sizeof(filePath));
|
||||||
|
|
||||||
snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr);
|
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);
|
//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 *pList = pSubImgListHead;
|
||||||
SubImgList_t *qList = pSubImgListHead;
|
SubImgList_t *qList = pSubImgListHead;
|
||||||
char fname[50] = {0};
|
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);
|
printf("[%s:%d] add to list:%s\n", __FUNCTION__, __LINE__, fileName);
|
||||||
|
|
||||||
SF_STRNCPY(tempStr, fileName+1, 3);
|
SF_STRNCPY(tempStr, fileName+1, 3);
|
||||||
dirKey = atoi((const char *)tempStr);
|
dirKey = atoi((const char *)tempStr);
|
||||||
fileKey = atoi((const char *)fileName+4);
|
fileKey = atoi((const char *)fileName+4);
|
||||||
|
@ -1986,7 +1988,7 @@ void sf_hd_pic_add_to_list(UINT8 *fileName)
|
||||||
free(strg_path);
|
free(strg_path);
|
||||||
return;
|
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);
|
free(strg_path);
|
||||||
if(sf_file_IsExsit(fname) != SF_TRUE)
|
if(sf_file_IsExsit(fname) != SF_TRUE)
|
||||||
{
|
{
|
||||||
|
@ -2117,6 +2119,7 @@ void sf_video_add_to_list(UINT8 *fileName)
|
||||||
UINT8 i = 0;
|
UINT8 i = 0;
|
||||||
UINT16 dirKeytmp = 0;
|
UINT16 dirKeytmp = 0;
|
||||||
UINT16 fileKeytmp = 0;
|
UINT16 fileKeytmp = 0;
|
||||||
|
char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
|
||||||
printf("add to list:%s\n", fileName);
|
printf("add to list:%s\n", fileName);
|
||||||
|
|
||||||
char *strg_path = sf_get_root_path();
|
char *strg_path = sf_get_root_path();
|
||||||
|
@ -2136,7 +2139,7 @@ void sf_video_add_to_list(UINT8 *fileName)
|
||||||
{
|
{
|
||||||
dirKeytmp = fileIndex / 10000;
|
dirKeytmp = fileIndex / 10000;
|
||||||
fileKeytmp = 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);
|
free(strg_path);
|
||||||
sf_file_size_get(fname,&fileSize);
|
sf_file_size_get(fname,&fileSize);
|
||||||
printf("find video:%s size=%d\n", 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();
|
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||||
SF_STORE_ATTR_S storeattrs = {0};
|
SF_STORE_ATTR_S storeattrs = {0};
|
||||||
|
MMC_DEV_TYPE mmc_dev = MMC_DEV_NO;
|
||||||
|
|
||||||
|
mmc_dev = sf_get_strg_dev();
|
||||||
/******************** SD cycle *************************/
|
/******************** SD cycle *************************/
|
||||||
if((0 == sf_check_sd()) || (sf_get_mode_flag() == 1))
|
if((0 == sf_check_sd()) || (sf_get_mode_flag() == 1))
|
||||||
{
|
{
|
||||||
|
@ -2526,6 +2531,10 @@ SINT32 sf_power_off_check_sd(void)
|
||||||
puiPara->SdFailCount++;
|
puiPara->SdFailCount++;
|
||||||
sf_sleep_ms(100);
|
sf_sleep_ms(100);
|
||||||
}
|
}
|
||||||
|
if(mmc_dev == MMC_DEV_EMMC)
|
||||||
|
{
|
||||||
|
printf("eMMC is FULL!\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -634,6 +634,10 @@ static SINT32 sfStrgDevOnActionMount(int dev_id, int result)
|
||||||
{
|
{
|
||||||
sf_app_mcu_updata_start();
|
sf_app_mcu_updata_start();
|
||||||
}
|
}
|
||||||
|
if(dev_id == MMC_DEV_EMMC)
|
||||||
|
{
|
||||||
|
printf("EMMC has Mounted!\r\n");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case FST_STA_DISK_UNFORMAT:
|
case FST_STA_DISK_UNFORMAT:
|
||||||
sf_statistics_param_load(sf_statistics_param_get());
|
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:
|
case FST_STA_CARD_ERR:
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_ERROR);
|
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_ERROR);
|
||||||
MLOGI("^Rcard-%d mount FAIL: Card Error\r\n", dev_id + 1);
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
MLOGI("^Rcard-%d mount FAIL: ErrID=%d\r\n", dev_id + 1, status);
|
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:
|
case CMD_SD_STRG_CB_UNKNOWN:
|
||||||
sf_set_card_full(1);
|
sf_set_card_full(1);
|
||||||
|
printf("eMMC is FULL!\r\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_SD_STRG_CB_MOUNT_FINISH:
|
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 sf_load_bt_ko(void)
|
||||||
{
|
{
|
||||||
BOOL ret2 = TRUE;
|
BOOL ret2 = TRUE;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
UINT8 i = 0;
|
||||||
char cmd[70] = {'\0'};
|
char cmd[70] = {'\0'};
|
||||||
MLOGI("start.\n");
|
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);
|
snprintf(cmd, sizeof(cmd), "insmod %s/kernel/drivers/bluetooth/rtk_btusb.ko", driver_path_prefix);
|
||||||
ret = system(cmd);
|
ret = system(cmd);
|
||||||
//ret = system("modprobe rtk_btusb");
|
//ret = system("modprobe rtk_btusb");
|
||||||
|
|
|
@ -91,15 +91,17 @@ SINT32 app_ttyusb_IsOpen(void) {
|
||||||
|
|
||||||
UINT8 i = 0;
|
UINT8 i = 0;
|
||||||
|
|
||||||
for (i = 0; i < 40; i++) {
|
for (i = 0; i < 150; i++) {
|
||||||
if (access("/dev/ttyUSB2", F_OK) == SF_SUCCESS) {
|
if (access("/dev/ttyUSB2", F_OK) == SF_SUCCESS) {
|
||||||
printf("tty usb ko exist!\r\n");
|
printf("tty usb ko exist!\r\n");
|
||||||
|
printf("4G Init OK\r\n");
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
usleep(100 * 1000);
|
usleep(100 * 1000);
|
||||||
if(39 == i)
|
if(149 == i)
|
||||||
{
|
{
|
||||||
MLOGE("NO ttyUSB dev!!\n");
|
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");
|
MLOGE("-------ttyUSB retry init fail!\n");
|
||||||
s32ret = SF_TTY_ERROR_OPEN;
|
s32ret = SF_TTY_ERROR_OPEN;
|
||||||
|
printf("4G Init Fail, retry\r\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -885,6 +888,7 @@ SINT16 sf_thumb_file_creat(void) {
|
||||||
free(strg_path);
|
free(strg_path);
|
||||||
return SF_FAILURE;
|
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();
|
SF_SRCFILE_ATTR_S *fileCfg = sf_file_thumb_cfg_get();
|
||||||
|
|
||||||
for (fileIndex = 0; fileIndex < fileCfg->filecnt; fileIndex++) {
|
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);
|
strncpy(fileKeyStr, fileCfg->stfileattr[fileIndex].thumbfileName + 4, 8);
|
||||||
MLOGD("dirKeyStr:%s, fileKeyStr:%s\n", dirKeyStr, fileKeyStr);
|
MLOGD("dirKeyStr:%s, fileKeyStr:%s\n", dirKeyStr, fileKeyStr);
|
||||||
sprintf(filePathStr, "%s%s/%s%s/%s%s", strg_path, SF_DCF_ROOT_DIR_NAME,
|
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);
|
fileKeyStr);
|
||||||
MLOGD("fileKeyStr:%s\n", filePathStr);
|
MLOGD("fileKeyStr:%s\n", filePathStr);
|
||||||
// check if pic exist
|
// 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)
|
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())
|
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()))
|
/*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");
|
MLOGI("MCU_UPGRADE\n");
|
||||||
UINT32 McuFsize = 0;
|
UINT32 McuFsize = 0;
|
||||||
SINT8 ret = 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");
|
MLOGI(" sf_power_off_msg_to_cardv\n");
|
||||||
MLOGE("MCU_UPGRADE no file\n");
|
MLOGE("MCU_UPGRADE no file\n");
|
||||||
|
@ -1634,8 +1663,7 @@ void* sf_app_mcu_updata_thread(void *arg)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
ret = Fw_GetFirmwareSize(file_path, &McuFsize);
|
ret = Fw_GetFirmwareSize(file_path, &McuFsize);
|
||||||
if((sf_in_card_exist() == SF_TRUE) && (access(file_path, F_OK) == 0)
|
if((ret == 0) && (McuFsize > 1024) && (sf_is_enough_power_to_update() == SF_TRUE))
|
||||||
&& (ret == 0) && (McuFsize > 1024) && (sf_is_enough_power_to_update() == SF_TRUE))
|
|
||||||
{
|
{
|
||||||
sf_set_mcu_update_flag(SF_TRUE);
|
sf_set_mcu_update_flag(SF_TRUE);
|
||||||
Fw_UpgradeThreadStart();
|
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->txtfileName, '\0', sizeof(pstfileAttr->txtfileName));
|
||||||
memset(pstfileAttr->txtfilePath, '\0', sizeof(pstfileAttr->txtfilePath));
|
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();
|
char *strg_path = sf_get_root_path();
|
||||||
if(strg_path == NULL)
|
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);
|
strncpy(fileName, pSubscribe->subscribeFileName + (strlen(pSubscribe->subscribeFileName) - 12), 12);
|
||||||
fileKey = atoi(fileName+4);
|
fileKey = atoi(fileName+4);
|
||||||
MLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
|
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);
|
MLOGD("srcFile:%s\n", filePath);
|
||||||
|
|
||||||
ret = sf_file_IsExsit((CHAR*)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);
|
free(strg_path);
|
||||||
return SF_FAILURE;
|
return SF_FAILURE;
|
||||||
}
|
}
|
||||||
|
char *dcf_file = sf_get_strg_dev() == MMC_DEV_EMMC ? "SYBX" : "SYEX";
|
||||||
|
|
||||||
switch(pSendFileAttr->enFileTye)
|
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);
|
strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 12), 12);
|
||||||
fileKey = atoi(fileName+4);
|
fileKey = atoi(fileName+4);
|
||||||
SLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
|
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);
|
SLOGD("srcFile:%s\n", filePath);
|
||||||
|
|
||||||
// strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 11), 8);
|
// 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);
|
strncpy(fileName, pSendFileAttr->SubFileName + (strlen(pSendFileAttr->SubFileName) - 12), 12);
|
||||||
fileKey = atoi(fileName+4);
|
fileKey = atoi(fileName+4);
|
||||||
SLOGD("FileName:%s, fileKey:%d\n", fileName, fileKey);
|
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);
|
SLOGD("srcFile:%s\n", filePath);
|
||||||
|
|
||||||
ret = sf_file_IsExsit((CHAR*)filePath);
|
ret = sf_file_IsExsit((CHAR*)filePath);
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#include "sf_blue_app.h"
|
#include "sf_blue_app.h"
|
||||||
#include "sf_device.h"
|
#include "sf_device.h"
|
||||||
|
#include "sf_hal_gpio.h"
|
||||||
|
|
||||||
extern int hciconfig_start_advertising(const char *ssid);
|
extern int hciconfig_start_advertising(const char *ssid);
|
||||||
extern int hciconfig_close_device(void);
|
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 44 > /sys/class/gpio/export");
|
||||||
// system("echo out > /sys/class/gpio/gpio44/direction");
|
// system("echo out > /sys/class/gpio/gpio44/direction");
|
||||||
// system("echo 1 > /sys/class/gpio/gpio44/value");
|
// 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;
|
UINT8 i = 0;
|
||||||
sf_bluetooth_power_enable();
|
sf_bluetooth_power_enable();
|
||||||
|
sf_load_bt_ko();
|
||||||
|
usleep(100 * 1000);
|
||||||
//system("export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/misc:/customer/rocus/lib");
|
//system("export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/misc:/customer/rocus/lib");
|
||||||
//system("adduser messagebus");
|
//system("adduser messagebus");
|
||||||
|
|
||||||
|
@ -150,16 +153,24 @@ static void *sf_bluetooth_piscan_task(void *arg)
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
for (i = 0; i < 40; i++) {
|
for (i = 0; i < 40; i++)
|
||||||
if (sf_system_check_bt_ko() == TRUE) {
|
{
|
||||||
|
if (sf_system_check_bt_ko() == TRUE)
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
} else {
|
}
|
||||||
usleep(500 * 1000);
|
else
|
||||||
if(39 == i)
|
{
|
||||||
|
if(1 == i)
|
||||||
|
{
|
||||||
|
sf_load_bt_ko();
|
||||||
|
}
|
||||||
|
else if(39 == i)
|
||||||
{
|
{
|
||||||
MLOGE("blue setup fall!!\n");
|
MLOGE("blue setup fall!!\n");
|
||||||
return NULL;
|
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)
|
MMC_DEV_TYPE sf_get_strg_dev(void)
|
||||||
{
|
{
|
||||||
|
if(sf_strg_dev != NULL) {
|
||||||
return sf_strg_dev->dev_type;
|
return sf_strg_dev->dev_type;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SINT32 sd_file_Isexsit(SF_CHAR *fileName)
|
static SINT32 sd_file_Isexsit(SF_CHAR *fileName)
|
||||||
|
@ -353,7 +357,7 @@ SINT32 sf_sd_loopremove(const char *path)
|
||||||
filedir[2] = *pTemp++; /*get file group ID*/
|
filedir[2] = *pTemp++; /*get file group ID*/
|
||||||
filedir[3] = '\0';
|
filedir[3] = '\0';
|
||||||
|
|
||||||
pTemp = strstr(g_cFileList[FileCount], DCF_FILE_NAME);
|
pTemp = strstr(g_cFileList[FileCount], "SYGW");
|
||||||
|
|
||||||
if(pTemp)
|
if(pTemp)
|
||||||
{
|
{
|
||||||
|
@ -878,12 +882,14 @@ int sf_app_sd_loop(void)
|
||||||
free(strg_path);
|
free(strg_path);
|
||||||
return SF_FAILURE;
|
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))
|
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"
|
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
|
//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)
|
if(access(cFileTmp,R_OK) == 0)
|
||||||
{
|
{
|
||||||
|
@ -893,7 +899,7 @@ int sf_app_sd_loop(void)
|
||||||
}
|
}
|
||||||
else
|
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)
|
if(access(cFileTmp,R_OK) == 0)
|
||||||
{
|
{
|
||||||
MLOGD("Will Delete File Name:%s\n", cFileTmp);
|
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);
|
//MLOGD("Thumb Filename:%s\n", cFileTmp);
|
||||||
if(access(cFileTmp,R_OK) == 0)
|
if(access(cFileTmp,R_OK) == 0)
|
||||||
{
|
{
|
||||||
|
@ -927,7 +933,7 @@ int sf_app_sd_loop(void)
|
||||||
remove(cFileTmp);
|
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);
|
//MLOGD("Thumb Filename:%s\n", cFileTmp);
|
||||||
if(access(cFileTmp,R_OK) == 0)
|
if(access(cFileTmp,R_OK) == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1197,10 +1197,11 @@ static void * sf_commu_mcu_task(void * argv)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
mcubuf_reset();
|
||||||
memcpy(mcu_buf, &buffer[start], copy_size);
|
memcpy(mcu_buf, &buffer[start], copy_size);
|
||||||
mcu_buf_len = copy_size;
|
mcu_buf_len = copy_size;
|
||||||
sf_commu_parse_mcu_data(mcu_buf, mcu_buf_len);
|
sf_commu_parse_mcu_data(mcu_buf, mcu_buf_len);
|
||||||
mcubuf_reset();
|
|
||||||
}
|
}
|
||||||
start = -1;
|
start = -1;
|
||||||
end = -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 ret = -1;
|
||||||
int retries = 0; // 重试次数
|
int retries = 0; // 重试次数
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
|
unsigned char tmpreg[3] = {0};
|
||||||
|
unsigned char tmpval[3] = {0};
|
||||||
if (gsfd == -1)
|
if (gsfd == -1)
|
||||||
sf_commu_mcu_open();
|
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__);
|
printf("%s:%d error\r\n", __FUNCTION__, __LINE__);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
retries++; // 错误时增加重试次数
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -97,14 +97,19 @@ UINT8 sf_mcu_write_multi(UINT8 reg[], UINT8 data[], UINT32 num)
|
||||||
{
|
{
|
||||||
UINT32 i;
|
UINT32 i;
|
||||||
unsigned int pnum = num;
|
unsigned int pnum = num;
|
||||||
if(0 <= sf_commu_set_mcu_many(reg, data, &pnum))
|
|
||||||
{
|
|
||||||
for(i = 0; i < num; i++)
|
for(i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
printf("W_addr[%d]=0x%02x\n", reg[i], data[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]);
|
||||||
|
// }
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
printf("%s:%d FAIL write err\n", __FUNCTION__, __LINE__);
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include "sf_common.h"
|
#include "sf_common.h"
|
||||||
|
#include "sf_log.h"
|
||||||
#include "sf_mcu_upgrade.h"
|
#include "sf_mcu_upgrade.h"
|
||||||
#include "sf_param_common.h"
|
#include "sf_param_common.h"
|
||||||
#include "sf_ledmng.h"
|
#include "sf_ledmng.h"
|
||||||
|
@ -340,11 +341,21 @@ static void * FwUpgradeTask(void * argv)
|
||||||
SINT8 param[1] = {0};
|
SINT8 param[1] = {0};
|
||||||
param[0] = 0;
|
param[0] = 0;
|
||||||
|
|
||||||
char *file_path = sf_root_path_strcat(UPGRADE_FIRMWARE_NANE);
|
//char *file_path = sf_root_path_strcat(UPGRADE_FIRMWARE_NANE);
|
||||||
if(file_path == NULL)
|
char file_path[64] = {0};
|
||||||
|
memset(file_path, '\0', sizeof(file_path));
|
||||||
|
if((access("/mnt/sd/Mupgrade.bin", F_OK) == 0))
|
||||||
{
|
{
|
||||||
free(file_path);
|
snprintf(file_path, sizeof(file_path), "/mnt/sd/Mupgrade.bin");
|
||||||
return;
|
}
|
||||||
|
if((access("/mnt/sd2/Mupgrade.bin", F_OK) == 0))
|
||||||
|
{
|
||||||
|
snprintf(file_path, sizeof(file_path), "/mnt/sd2/Mupgrade.bin");
|
||||||
|
}
|
||||||
|
if(file_path[0] == '\0')
|
||||||
|
{
|
||||||
|
MLOGE("no update file\n");
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(FwUpgradeExit == 0)
|
while(FwUpgradeExit == 0)
|
||||||
|
|
|
@ -149,7 +149,7 @@ static PHONE_SHOT_E gPhoneShot = PHONE_SHOT_END;
|
||||||
extern sem_t gAppSvrSendQueue;
|
extern sem_t gAppSvrSendQueue;
|
||||||
extern UINT8 StopSendFile;
|
extern UINT8 StopSendFile;
|
||||||
extern UINT8 SendingFile;
|
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 *
|
* 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;
|
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)
|
if(imgSize == THUMB_320x240)
|
||||||
{
|
{
|
||||||
sprintf((char *)tempPath, "%s%s/small", strg_path, THUMB_PATH);
|
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
|
#endif
|
||||||
/****check floder and creat it if that is not exist***end****/
|
/****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);
|
MLOGI("ThumbName:%s", fileName);
|
||||||
return fileName;
|
return fileName;
|
||||||
}
|
}
|
||||||
|
@ -701,7 +704,7 @@ UINT8 appCmpFileList(void)
|
||||||
//appThumbNameToKey(&fileType, &dirKey, &fileKey, gDevFileList[i].fileNameString);ERROR:dirKey always zero
|
//appThumbNameToKey(&fileType, &dirKey, &fileKey, gDevFileList[i].fileNameString);ERROR:dirKey always zero
|
||||||
//printf("dirkey=%d\n",dirKey);
|
//printf("dirkey=%d\n",dirKey);
|
||||||
sprintf(fileName,"D:/DCIM/%.3s%s/%s%.4s%s",
|
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")));
|
(gDevFileList[i].fileNameString[3] == '0' ? ".JPG" : (gDevFileList[i].fileNameString[3] == '1' ? ".MP4" : ".MP4")));
|
||||||
//profLogPrintf(0,"file:%s", fileName);
|
//profLogPrintf(0,"file:%s", fileName);
|
||||||
//printf("str:%s,name:%s,\n",gDevFileList[i].fileNameString,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;
|
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);
|
//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,
|
strg_path,
|
||||||
tempbuf2,
|
tempbuf2,
|
||||||
DCF_DIR_NAME,
|
DCF_DIR_NAME,
|
||||||
DCF_FILE_NAME,
|
dcf_file,
|
||||||
tempbuf+4,
|
tempbuf+4,
|
||||||
(tempbuf[3] == '0' ? ".JPG" : (tempbuf[3] == '1' ? ".MP4" : ".MP4")));
|
(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,
|
strg_path,
|
||||||
tempbuf2,
|
tempbuf2,
|
||||||
DCF_DIR_NAME,
|
DCF_DIR_NAME,
|
||||||
DCF_FILE_NAME,
|
dcf_file,
|
||||||
tempbuf+4,
|
tempbuf+4,
|
||||||
(tempbuf[0] == 'W' ? ".JPG" : (tempbuf[0] == 'S' ? ".MP4" : ".MP4")));
|
(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);
|
ret = remove((char *)fileName);
|
||||||
MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
|
MLOGI("delete thumb name=%s ret=%d\n",fileName,ret);
|
||||||
if(fileType == STILL_THUMB)
|
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
|
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);
|
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");
|
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("hostapd -ddd /appfs/etc/hostapd/hostapd-8189.conf &");
|
||||||
//ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
|
//ret = system("udhcpd /appfs/etc/udhcpd-8189.conf");
|
||||||
//FILE *fp;
|
//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_mem_free(void);
|
||||||
void sf_cardv_battery_level_set(UINT32 val);
|
void sf_cardv_battery_level_set(UINT32 val);
|
||||||
void sf_cardv_statistics_param_reset(void);
|
void sf_cardv_statistics_param_reset(void);
|
||||||
|
void sf_cardv_set_wifi_en(UINT32 cnt);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -65,6 +65,8 @@
|
||||||
#include "sf_4g_lpa.h"
|
#include "sf_4g_lpa.h"
|
||||||
#include <sf_wifi_svr.h>
|
#include <sf_wifi_svr.h>
|
||||||
#include <sf_log.h>
|
#include <sf_log.h>
|
||||||
|
#include <sf_storeMng.h>
|
||||||
|
|
||||||
|
|
||||||
BOOL isGoing2PowerOff = FALSE;
|
BOOL isGoing2PowerOff = FALSE;
|
||||||
UINT16 AutoOfftime = 0;
|
UINT16 AutoOfftime = 0;
|
||||||
|
@ -1848,7 +1850,7 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||||
switch(pMessageBuf->arg1)
|
switch(pMessageBuf->arg1)
|
||||||
{
|
{
|
||||||
case SF_WIFI_CMD_START:
|
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();
|
sf_cardv_wifi_start();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2786,8 +2788,9 @@ UINT32 sf_cardv_wifi_start(void)
|
||||||
{
|
{
|
||||||
SINT32 ret = 1;
|
SINT32 ret = 1;
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
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)
|
if(WifiTskCfg.IsRun)
|
||||||
{
|
{
|
||||||
|
@ -2913,6 +2916,9 @@ void* sf_cardv_hd_cap_thread(void *arg)
|
||||||
{
|
{
|
||||||
UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
|
UINT8 PowerOnMode = sf_cardv_convert_power_on_mode();
|
||||||
MLOGD(" HD start PowerOnMode:%d\n", PowerOnMode);
|
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((PWR_ON_SMS == PowerOnMode) || (PWR_ON_TIME_SYNC == PowerOnMode))
|
||||||
{
|
{
|
||||||
//if(TRUE != sf_is_preview())
|
//if(TRUE != sf_is_preview())
|
||||||
|
@ -2939,8 +2945,8 @@ void* sf_cardv_hd_cap_thread(void *arg)
|
||||||
//HdflieName
|
//HdflieName
|
||||||
memset(HdflieName, '\0', sizeof(HdflieName));
|
memset(HdflieName, '\0', sizeof(HdflieName));
|
||||||
sf_hd_flag_clear_done(0);
|
sf_hd_flag_clear_done(0);
|
||||||
snprintf(HdflieName, sizeof(HdflieName), "W%03d%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, 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%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, DCF_DIR_NAME, DCF_FILE_NAME, 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);
|
printf("%s\n", str);
|
||||||
arg[0] = str;
|
arg[0] = str;
|
||||||
sf_cmd_transcode_start(arg);
|
sf_cmd_transcode_start(arg);
|
||||||
|
@ -3539,3 +3545,15 @@ void sf_cardv_statistics_param_reset(void)
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__);
|
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)
|
void sf_mcu_dataready_ck(UINT8 startMode)
|
||||||
{
|
{
|
||||||
|
static UINT8 McupwrFlag = 0;
|
||||||
printf("startMode=%d\n", startMode);
|
printf("startMode=%d\n", startMode);
|
||||||
#if 1
|
#if 1
|
||||||
if(GxUSB_GetIsUSBPlug())//sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
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_auto_off_time(0);
|
||||||
sf_set_pir_statu_flag(0);
|
sf_set_pir_statu_flag(0);
|
||||||
sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR);
|
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
|
else if(startMode == 3) //ON
|
||||||
|
@ -805,6 +811,11 @@ void sf_mcu_dataready_ck(UINT8 startMode)
|
||||||
sf_set_power_off_flag(1);
|
sf_set_power_off_flag(1);
|
||||||
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
||||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start
|
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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -393,7 +393,7 @@ static void IrCutCtrlThreadInit(void)
|
||||||
{
|
{
|
||||||
//DBG_DUMP("\r\n [%s:%d] s \r\n",__FUNCTION__,__LINE__);
|
//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){
|
if(!g_handle_ir_cut){
|
||||||
DBG_ERR("[ERROR] IR CUT thread creat failed!\r\n");
|
DBG_ERR("[ERROR] IR CUT thread creat failed!\r\n");
|
||||||
Delay_DelayMs(80);
|
Delay_DelayMs(80);
|
||||||
|
|
|
@ -945,7 +945,7 @@
|
||||||
#define HUNTING_MCU_UART ENABLE
|
#define HUNTING_MCU_UART ENABLE
|
||||||
#define HUNTING_IR_LED_940 ENABLE
|
#define HUNTING_IR_LED_940 ENABLE
|
||||||
#define SF_EXIF_MN_BUF_SIZE 256
|
#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_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||||
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
|
||||||
#define PHOTO_THUMB_PATH ":\\THUMB\\"
|
#define PHOTO_THUMB_PATH ":\\THUMB\\"
|
||||||
|
@ -988,7 +988,9 @@
|
||||||
#endif
|
#endif
|
||||||
#define SF_NO_SD_SEND ENABLE
|
#define SF_NO_SD_SEND ENABLE
|
||||||
#define SF_4G_MODE_TEST DISABLE
|
#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////////////////////////////////
|
////////////////////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_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_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_SetDirFreeChars(DCF_DIR_NAME);
|
||||||
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
|
//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -486,7 +486,7 @@ void System_OnStrgExit_FS(void)
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_Close();
|
LogFile_Close();
|
||||||
}
|
}
|
||||||
|
@ -640,7 +640,7 @@ INT32 System_OnStrgRemove(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
LogFile_Close();
|
LogFile_Close();
|
||||||
|
@ -787,7 +787,7 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
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
|
#else
|
||||||
if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
|
if (SxTimer_GetFuncActive(SX_TIMER_DET_SYSTEM_ERROR_ID) == 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -114,6 +114,48 @@ extern void eac_set_phypower(BOOL b_en);
|
||||||
#if (defined(_NVT_ETHREARCAM_TX_)) && (ETHCAM_EIS == ENABLE)
|
#if (defined(_NVT_ETHREARCAM_TX_)) && (ETHCAM_EIS == ENABLE)
|
||||||
extern int gyro_init(void);
|
extern int gyro_init(void);
|
||||||
#endif
|
#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)
|
static void insmod_system(void)
|
||||||
{
|
{
|
||||||
#if (HUNTING_CAMERA_MODEL == ENABLE)
|
#if (HUNTING_CAMERA_MODEL == ENABLE)
|
||||||
|
@ -196,14 +238,14 @@ static void insmod_system(void)
|
||||||
DBG_ERR("open hwclock failed!\n");
|
DBG_ERR("open hwclock failed!\n");
|
||||||
}
|
}
|
||||||
else{
|
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_time = {0};
|
||||||
struct tm current_time2 = {0};
|
struct tm current_time2 = {0};
|
||||||
|
|
||||||
current_time.tm_year = 2001;
|
current_time.tm_year = 2023;
|
||||||
current_time.tm_mon = 12;
|
current_time.tm_mon = 1;
|
||||||
current_time.tm_mday = 30;
|
current_time.tm_mday = 1;
|
||||||
current_time.tm_hour = 6;
|
current_time.tm_hour = 8;
|
||||||
current_time.tm_min = 0;
|
current_time.tm_min = 0;
|
||||||
current_time.tm_sec = 0;
|
current_time.tm_sec = 0;
|
||||||
|
|
||||||
|
@ -216,6 +258,7 @@ static void insmod_system(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vos_perf_list_mark("b_sys", __LINE__, 1);
|
vos_perf_list_mark("b_sys", __LINE__, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1153,13 +1196,7 @@ void rtos_main(void)
|
||||||
#if (POWERON_FAST_BOOT_MSG == DISABLE)
|
#if (POWERON_FAST_BOOT_MSG == DISABLE)
|
||||||
fastboot_msg_en(DISABLE);
|
fastboot_msg_en(DISABLE);
|
||||||
#endif
|
#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);
|
VK_TASK_HANDLE vkt_boot = vos_task_create(fastboot_thread, fastboot, "boot", 9, 10240);
|
||||||
vos_task_resume(vkt_boot);
|
vos_task_resume(vkt_boot);
|
||||||
fastboot_wait_done(BOOT_FLOW_BOOT);
|
fastboot_wait_done(BOOT_FLOW_BOOT);
|
||||||
|
@ -1169,12 +1206,6 @@ void rtos_main(void)
|
||||||
#if (POWERON_FAST_BOOT_MSG == DISABLE)
|
#if (POWERON_FAST_BOOT_MSG == DISABLE)
|
||||||
fastboot_msg_en(ENABLE);
|
fastboot_msg_en(ENABLE);
|
||||||
#endif
|
#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
|
#if (FASTBOOT_KEYSCAN_FUNC == ENABLE) // enable for keyscan / usb function, but need modify lds file
|
||||||
flow_system_init();
|
flow_system_init();
|
||||||
|
|
|
@ -126,7 +126,9 @@ static void card_insert_job2(void)
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgRegister(1, ret);
|
SF_RtosStrgRegister(1, ret);
|
||||||
#endif
|
#endif
|
||||||
|
sf_check_emmc_full();
|
||||||
fastboot_set_done(BOOT_INIT_FILESYSOK_2);
|
fastboot_set_done(BOOT_INIT_FILESYSOK_2);
|
||||||
|
|
||||||
printf("filesys2_init e\r\n");
|
printf("filesys2_init e\r\n");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -265,7 +267,7 @@ void sf_log_confg(void)
|
||||||
{
|
{
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LOGFILE_CFG cfg = {0};
|
LOGFILE_CFG cfg = {0};
|
||||||
cfg.ConType = LOGFILE_CON_UART|LOGFILE_CON_STORE;
|
cfg.ConType = LOGFILE_CON_UART|LOGFILE_CON_STORE;
|
||||||
|
@ -287,7 +289,7 @@ void sf_log_open(void)
|
||||||
|
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
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};
|
LOGFILE_OPEN logOpenParm = {0};
|
||||||
UINT32 maxFileNum = 32;
|
UINT32 maxFileNum = 32;
|
||||||
|
|
|
@ -750,7 +750,7 @@ UINT32 BackgroundFormat(void)
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
LogFile_Close();
|
LogFile_Close();
|
||||||
|
@ -788,7 +788,7 @@ UINT32 BackgroundFormat(void)
|
||||||
//#NT#Support logfile function
|
//#NT#Support logfile function
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_ReOpen();
|
LogFile_ReOpen();
|
||||||
}
|
}
|
||||||
|
@ -826,7 +826,7 @@ UINT32 BackgroundFormatCard(void)
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
LogFile_Complete();
|
LogFile_Complete();
|
||||||
|
@ -864,7 +864,7 @@ UINT32 BackgroundFormatCard(void)
|
||||||
//#NT#Support logfile function
|
//#NT#Support logfile function
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_ReOpen();
|
LogFile_ReOpen();
|
||||||
}
|
}
|
||||||
|
@ -894,7 +894,7 @@ UINT32 BackgroundFormatNand(void)
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
LogFile_Complete();
|
LogFile_Complete();
|
||||||
|
@ -932,7 +932,7 @@ UINT32 BackgroundFormatNand(void)
|
||||||
//#NT#Support logfile function
|
//#NT#Support logfile function
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
LogFile_ReOpen();
|
LogFile_ReOpen();
|
||||||
}
|
}
|
||||||
|
|
|
@ -321,6 +321,7 @@ static void MovieFast_ShutDown(void)
|
||||||
{
|
{
|
||||||
DBG_DUMP("LogFile_Close ...\n");
|
DBG_DUMP("LogFile_Close ...\n");
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
|
LogFile_DumpToFile("A:\\Log.txt");
|
||||||
LogFile_Close();
|
LogFile_Close();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -868,7 +869,12 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
|
||||||
//#endif
|
//#endif
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
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
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev ==NULL)
|
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.
|
//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 nextFolderID = 0, nextFileID = 0;
|
||||||
UINT32 max_cnt = 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)) {
|
if (DCF_GetDBInfo(DCF_INFO_IS_9999)) {
|
||||||
DBG_ERR("Exceed max dcf file!\r\n");
|
DBG_ERR("Exceed max dcf file!\r\n");
|
||||||
pFileName[0] = '\0';
|
pFileName[0] = '\0';
|
||||||
} else {
|
} else {
|
||||||
DBG_DUMP("%s\n", __FUNCTION__);
|
DBG_DUMP("%s\n", __FUNCTION__);
|
||||||
DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
|
DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
|
||||||
|
char font = mmc_dev->dev_type == MMC_DEV_EMMC ? 'B' : 'E';
|
||||||
DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
|
DCF_GetNextIDEx(handle, &nextFolderID,&nextFileID);
|
||||||
if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2)
|
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_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
|
||||||
DCF_AddDBfileEx(handle, pFileName);
|
DCF_AddDBfileEx(handle, pFileName);
|
||||||
DBG_DUMP("%s added to DCF\r\n", pFileName);
|
DBG_DUMP("%s added to DCF\r\n", pFileName);
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
||||||
sprintf(tmp, "S%03ld%04ld.JPG", nextFolderID, nextFileID);
|
sprintf(tmp, "S%c%03ld%04ld.JPG", font, nextFolderID, nextFileID);
|
||||||
if(id == _CFG_REC_ID_1){
|
if(id == _CFG_REC_ID_1){
|
||||||
snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", tmp);
|
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);
|
MovieFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#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");
|
DBG_ERR("ERR card full\r\n");
|
||||||
//return ;
|
//return ;
|
||||||
|
@ -1094,7 +1118,7 @@ static void MovieFast_WriteFile_Task(void* arg)
|
||||||
if(param->va){
|
if(param->va){
|
||||||
DBG_DUMP("Write %s\n", param->path);
|
DBG_DUMP("Write %s\n", param->path);
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(TRUE != sf_is_card_full())
|
if(TRUE != sf_is_card_full() || TRUE != sf_is_emmc_full())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
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);
|
free(param->va);
|
||||||
}
|
}
|
||||||
else if(param->frame.phy_addr[0]){
|
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 HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(TRUE != sf_is_card_full())
|
if(TRUE != sf_is_card_full() || TRUE != sf_is_emmc_full())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
||||||
|
@ -1278,6 +1302,23 @@ static void MovieFast_FileNaming_Init(void)
|
||||||
{
|
{
|
||||||
static UINT8 is_init = 0;
|
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)
|
if(is_init == 1)
|
||||||
return;
|
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_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_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_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)
|
THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
|
||||||
|
@ -1358,7 +1399,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
|
||||||
DCF_ScanObjEx(g_dcf_hdl2);
|
DCF_ScanObjEx(g_dcf_hdl2);
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
if(TRUE != sf_is_card_full())
|
if(TRUE != sf_is_emmc_full())
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#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_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_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_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)
|
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_SD, g_dcf_hdl);
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
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
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev ==NULL)
|
if(mmc_dev ==NULL)
|
||||||
|
@ -1014,6 +1020,20 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
|
||||||
UINT32 nextFolderID = 0, nextFileID = 0;
|
UINT32 nextFolderID = 0, nextFileID = 0;
|
||||||
DCF_HANDLE handle = PhotoFast_Get_DCF_Handle(); /* handle determines which storage would be written */
|
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(Path == NULL){
|
||||||
if (DCF_GetDBInfoEx(handle, DCF_INFO_IS_9999)) {
|
if (DCF_GetDBInfoEx(handle, DCF_INFO_IS_9999)) {
|
||||||
DBG_ERR("Exceed max dcf file!\r\n");
|
DBG_ERR("Exceed max dcf file!\r\n");
|
||||||
|
@ -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_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath);
|
||||||
DCF_AddDBfileEx(handle, FilePath);
|
DCF_AddDBfileEx(handle, FilePath);
|
||||||
DBG_DUMP("%s added to DCF\r\n", 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 tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
||||||
char str1[5] = { 0 };
|
char str1[5] = { 0 };
|
||||||
char str2[5] = { 0 };
|
char str2[5] = { 0 };
|
||||||
|
char font = mmc_dev->dev_type == MMC_DEV_EMMC ? 'B' : 'E';
|
||||||
memcpy(str1, FilePath + 8, 3);
|
memcpy(str1, FilePath + 8, 3);
|
||||||
memcpy(str2, FilePath + 21, 4);
|
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);
|
//sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID);
|
||||||
strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1);
|
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);
|
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);
|
DBG_ERR("ERR Addr=0x%x,Size=0x%x,Fmt=%d card full\r\n", Addr, Size, Fmt);
|
||||||
rt =FST_STA_ERROR;
|
rt =FST_STA_ERROR;
|
||||||
|
@ -2010,7 +2033,7 @@ exit:
|
||||||
#if SF_TRIGGER_TIME_TEST == ENABLE
|
#if SF_TRIGGER_TIME_TEST == ENABLE
|
||||||
sf_trigger_time_led_cb(0);
|
sf_trigger_time_led_cb(0);
|
||||||
#endif
|
#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);
|
vos_flag_set(PHOTOFAST_FLG_ID, FLGPHOTOFAST_SHUTDOWN);
|
||||||
}
|
}
|
||||||
|
@ -2156,10 +2179,11 @@ static void PhotoFast_ShutDown(void)
|
||||||
// DBG_DUMP("wait filesys close ...\n");
|
// DBG_DUMP("wait filesys close ...\n");
|
||||||
#if (LOGFILE_FUNC==ENABLE)
|
#if (LOGFILE_FUNC==ENABLE)
|
||||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||||
if(puiPara->DebugMode)
|
if(puiPara->AutoLogSwitch)
|
||||||
{
|
{
|
||||||
DBG_DUMP("LogFile_Close ...\n");
|
DBG_DUMP("LogFile_Close ...\n");
|
||||||
LogFile_Suspend();
|
LogFile_Suspend();
|
||||||
|
LogFile_DumpToFile("A:\\Log.txt");
|
||||||
LogFile_Close();
|
LogFile_Close();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2369,6 +2369,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
|
|
||||||
{
|
{
|
||||||
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'};
|
||||||
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
|
|
||||||
#if !PHOTOFAST_FAST_CLOSE
|
#if !PHOTOFAST_FAST_CLOSE
|
||||||
extern CHAR* PhotoFast_GetLastWriteFilePath(void);
|
extern CHAR* PhotoFast_GetLastWriteFilePath(void);
|
||||||
|
@ -2376,8 +2377,10 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
#else
|
#else
|
||||||
char file_path[NMC_TOTALFILEPATH_MAX_LEN];
|
char file_path[NMC_TOTALFILEPATH_MAX_LEN];
|
||||||
|
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#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);
|
strncpy(file_path, tmp, strlen(queue_ele_in->file_path) - 1);
|
||||||
DBG_IND("last send file:%s\r\n", file_path);
|
DBG_IND("last send file:%s\r\n", file_path);
|
||||||
#else
|
#else
|
||||||
|
@ -2391,7 +2394,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
|
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
|
||||||
if(mmc_dev != NULL)
|
if(mmc_dev != NULL)
|
||||||
{
|
{
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
@ -2419,7 +2422,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
DBG_IND("PHOTO THUMB %s\n", tmp);
|
DBG_IND("PHOTO THUMB %s\n", tmp);
|
||||||
|
|
||||||
vos_perf_mark(&t3);
|
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);
|
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*)
|
libzlib.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||||
libmem.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*)
|
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 */
|
/* driver */
|
||||||
libdrv_portable.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
libdrv_portable.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
|
||||||
libdrv_drtc.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("aud_set_default_setting")
|
||||||
EXTERN("eac_set_ad_config")
|
EXTERN("eac_set_ad_config")
|
||||||
EXTERN("eac_set_phypower")
|
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);
|
BOOL sf_is_card_full(void);
|
||||||
UINT32 sf_check_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);
|
typedef BOOL (*SF_CALLBACK_SD_CMD)(void);
|
||||||
|
|
||||||
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB);
|
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");
|
//vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
|
||||||
/*thread creat*/
|
/*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);
|
vos_task_resume(ledTskId);
|
||||||
#if HW_S530
|
#if HW_S530
|
||||||
/*thread creat*/
|
/*thread creat*/
|
||||||
|
|
|
@ -767,18 +767,39 @@ UINT32 sf_gpio_get_status(UINT32 ipin)
|
||||||
}
|
}
|
||||||
UINT32 sf_in_update(void)
|
UINT32 sf_in_update(void)
|
||||||
{
|
{
|
||||||
|
int i = 0;
|
||||||
if((sf_gpio_get_status(GPIO_KEY_TEST)) && (PWR_ON_SETUP == sf_get_power_on_mode()))
|
if((sf_gpio_get_status(GPIO_KEY_TEST)) && (PWR_ON_SETUP == sf_get_power_on_mode()))
|
||||||
|
{
|
||||||
|
while((sf_gpio_get_status(GPIO_KEY_TEST)) && (10 > i))
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
vos_util_delay_us(100);
|
||||||
|
}
|
||||||
|
if(10 <= i)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
UINT32 sf_in_mcu_update(void)
|
UINT32 sf_in_mcu_update(void)
|
||||||
{
|
{
|
||||||
if((sf_gpio_get_status(GPIO_KEY_DOWN)) && (PWR_ON_SETUP == sf_get_power_on_mode())){
|
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;
|
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 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
static BOOL IsCardFull = FALSE;
|
static BOOL IsCardFull = FALSE;
|
||||||
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
|
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
|
||||||
extern BOOL DrvCARD_DetStrgCard(void);
|
extern BOOL DrvCARD_DetStrgCard(void);
|
||||||
|
static BOOL IsEmmcFull = FALSE;
|
||||||
|
|
||||||
SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
|
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;
|
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)
|
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user