nt9856x/code/application/source/cardv/SrcCode/System/SysStrg_CB.c
payton 951179ab21 1.升级调整
2.去掉一些注释函数,注释一些log
3.调整sd卡挂卡后的处理
4.快捷格式化的调整
5.增加生成相机信息函数
2023-07-21 11:09:17 +08:00

197 lines
5.5 KiB
C
Executable File
Raw Blame History

/**
DevMan, Service command function implementation
@file DeviceUsbMan.c
@ingroup mDEVMAN
Copyright Novatek Microelectronics Corp. 2012. All rights reserved.
*/
//global debug level: PRJ_DBG_LVL
#include "PrjInc.h"
//local debug level: THIS_DBGLVL
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
///////////////////////////////////////////////////////////////////////////////
#define __MODULE__ SysStrgExe
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
#define __DBGFLT__ "*" //*=All, [mark]=CustomClass
#include <kwrap/debug.h>
///////////////////////////////////////////////////////////////////////////////
//#include "SysKer.h"
//#include "Debug.h"
//#include "NvtUser.h"
//#NT#2016/09/19#Niven Cho -begin
//#NT#SD_HOTPLUG
//#include "NVTUserCommand.h"
//#NT#2016/09/19#Niven Cho -end
//#include "NvtSystem.h"
//#include "GxSystem.h"
//#include "AppControl.h"
//#include "SysMain.h"
/////////////////////////////////////////////////////////////////////////////
// CARD
#if (FS_FUNC == ENABLE)
#include "GxStrg.h"
#include "FileSysTsk.h"
#if HUNTING_CAMERA_MCU == ENABLE
#include <sf_message_queue.h>
#include <sf_param_struct.h>
#include "sf_sd_common.h"
#endif
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2);
void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2)
{
UINT32 status;
#if HUNTING_CAMERA_MCU == ENABLE
SF_MESSAGE_BUF_S stMessageBuf = {0};
#endif
switch (event) {
// part-1
case SYSTEM_CB_CONFIG:
//2.<2E>]<5D>wCB<43><42>,
//3.<2E><><EFBFBD>USxJob<6F>A<EFBFBD><41> ---------> System Job
//4.<2E><><EFBFBD>USxTimer<65>A<EFBFBD><41> ---------> Detect Job
//5.<2E><><EFBFBD>USxCmd<6D>A<EFBFBD><41> ---------> Cmd Function
//System_AddSxCmd(Storage_OnCommand); //GxStorage
break;
case STRG_CB_INSERTED: //call after card inserted
DBG_IND("CARD-%d inserted\r\n", param1 + 1);
//#NT#2016/03/02#Niven Cho -begin
//#NT#Fix FAST_BOOT + LINUX + without card, boot failed.
#if defined(_CPU2_LINUX_)
if (System_GetState(SYS_STATE_POWERON) == SYSTEM_POWERON_NORMAL) {
Ux_PostEvent(NVTEVT_STRG_CHANGE, 1, param1);
}
#endif
//#NT#2016/03/02#Niven Cho -end
Ux_PostEvent(NVTEVT_STRG_INSERT, 1, param1);
break;
case STRG_CB_REMOVED: //call after card removed
DBG_IND("CARD-%d removed\r\n", param1 + 1);
//#NT#2016/03/02#Niven Cho -begin
//#NT#Fix FAST_BOOT + LINUX + without card, boot failed.
#if defined(_CPU2_LINUX_)
if (System_GetState(SYS_STATE_POWERON) == SYSTEM_POWERON_NORMAL) {
Ux_PostEvent(NVTEVT_STRG_CHANGE, 1, param1);
}
#endif
//#NT#2016/03/02#Niven Cho -end
//#NT#2016/09/19#Niven Cho -begin
//#NT#SD_HOTPLUG
#if (SDHOTPLUG_FUNCTION)
//Post to UI window to stop capturing or recording
Ux_PostEvent(NVTEVT_STORAGE_CHANGE, 1, param1);
#endif
//#NT#2016/09/19#Niven Cho -end
Ux_PostEvent(NVTEVT_STRG_REMOVE, 1, param1);
break;
case STRG_CB_UNKNOWN: //call if card status is unknown
DBG_IND("CARD-%d unknown\r\n", param1 + 1);
DBG_IND("File abort\r\n");
{
// abort file system
///FileSys_SetState(FST_STATE_ABORT,FST_CMD_CLOSE_FILE);
///FileSys_SetState(FST_STATE_ABORT,FST_CMD_DELETE_FILE);
///FileSys_SetState(FST_STATE_ABORT,FST_CMD_FORMAT);
}
DBG_ERR("^RCard unknown\r\n");
{
//System_PowerOff(SYS_POWEROFF_NORMAL);
}
break;
case STRG_CB_UNMOUNT_FINISH:
status = param2;
switch (status) {
case FST_STA_OK:
DBG_MSG("card-%d unmount OK\r\n", param1 + 1);
break;
default:
DBG_MSG("^Rcard-%d unmount FAIL\r\n", param1 + 1);
break;
}
Ux_PostEvent(NVTEVT_STRG_DETACH, 2, param1, status);
break;
case STRG_CB_MOUNT_FINISH: //after finish change storage
status = param2;
switch (status) {
case FST_STA_OK:
DBG_MSG("card-%d mount OK\r\n", param1 + 1);
break;
case FST_STA_DISK_UNFORMAT:
DBG_MSG("^Rcard-%d mount FAIL: Unformat\r\n", param1 + 1);
break;
case FST_STA_DISK_UNKNOWN_FORMAT:
DBG_MSG("^Rcard-%d mount FAIL: Unknown Format\r\n", param1 + 1);
break;
case FST_STA_CARD_ERR:
DBG_MSG("^Rcard-%d mount FAIL: Card Error\r\n", param1 + 1);
break;
#if 0
case FST_STA_OUT_OF_ID:
DBG_MSG("^Rcard-%d mount FAIL: Out of ID\r\n", stg_id + 1);
break;
#endif
default:
DBG_MSG("^Rcard-%d mount FAIL: ErrID=%d\r\n", param1 + 1, status);
}
{
static BOOL bFirst = TRUE;
if (bFirst) {
TM_BOOT_END("sdio", "mount_fs");
}
bFirst = FALSE;
}
#if (POWERON_FAST_BOOT == ENABLE)
INIT_SETFLAG(FLGINIT_MOUNTFS);
#endif
Ux_PostEvent(NVTEVT_STRG_ATTACH, 2, param1, status);
#if HUNTING_CAMERA_MCU == ENABLE
INT32 uiStatus = 0;
UINT8 ucAttrib = 0;
uiStatus = FileSys_GetAttrib(PHOTO_THUMB_PATH, &ucAttrib);
if (uiStatus == FST_STA_OK) {
if(!(ucAttrib&FST_ATTRIB_HIDDEN)){
#if SF_IQ_TEST != ENABLE
FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE);
#endif
}
}
else {
FileSys_MakeDir(PHOTO_THUMB_PATH);
#if SF_IQ_TEST != ENABLE
FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE);
#endif
}
#endif
break;
default:
DBG_ERR("Strg_CB Err event(%d)", event);
break;
}
#if HUNTING_CAMERA_MCU == ENABLE
if((CMD_FORMAT_SD_STA != sf_get_card_statu())){
stMessageBuf.arg1 = event;
stMessageBuf.arg2 = param1;
stMessageBuf.arg3 = param2;
stMessageBuf.cmdId = CMD_SD;
sf_com_message_send_to_app(&stMessageBuf);
}
#endif
}
#endif