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:
xiehongyan 2024-01-09 10:37:36 +08:00
commit 916b6d5985
44 changed files with 595 additions and 144 deletions

View File

@ -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

View File

@ -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///////////////////////////////

View File

@ -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];
} }
} }

View File

@ -873,7 +873,7 @@ exit:
#endif #endif
#endif #endif
//System_PowerOffStart(); System_PowerOffStart();
} }

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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);
} }

View File

@ -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;

View File

@ -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())))

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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
{ {

View File

@ -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:

View File

@ -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");

View File

@ -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

View File

@ -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();

View File

@ -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);

View File

@ -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);
} }
} }

View File

@ -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)
{ {

View File

@ -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
{ {

View File

@ -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;
} }

View File

@ -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)

View File

@ -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.

View File

@ -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

View File

@ -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);
}

View File

@ -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");
} }
} }

View File

@ -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);

View File

@ -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////////////////////////////////

View File

@ -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

View File

@ -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();

View File

@ -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;

View File

@ -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();
} }

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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")

View File

@ -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);

View File

@ -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*/

View File

@ -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;

View File

@ -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)
{ {