1.getpic cmd使用线程

This commit is contained in:
payton 2023-08-07 16:35:54 +08:00
parent 53a2bce15d
commit 10268a2bf2
2 changed files with 57 additions and 26 deletions

View File

@ -118,4 +118,5 @@ BOOL sf_cmd_disp_para_set(unsigned char argc, char **argv);
BOOL sf_cmd_ftp_switch(unsigned char argc, char **argv); BOOL sf_cmd_ftp_switch(unsigned char argc, char **argv);
BOOL sf_cmd_ftp(unsigned char argc, char **argv); BOOL sf_cmd_ftp(unsigned char argc, char **argv);
BOOL sf_cmd_ftps(unsigned char argc, char **argv); BOOL sf_cmd_ftps(unsigned char argc, char **argv);
UINT32 sf_cardv_cap_start(void);
#endif #endif

View File

@ -99,7 +99,11 @@ static SF_THREAD_S WifiTskCfg =
.IsRun = 0, .IsRun = 0,
.TskId = -1, .TskId = -1,
}; };
static SF_THREAD_S CapTskCfg =
{
.IsRun = 0,
.TskId = -1,
};
int sf_pir_statu_read(void) int sf_pir_statu_read(void)
{ {
static UINT8 state = 0; static UINT8 state = 0;
@ -1626,31 +1630,7 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
ImageApp_Common_RtspStart(0); ImageApp_Common_RtspStart(0);
break; break;
case SF_WIFI_CMD_CAPTURE: case SF_WIFI_CMD_CAPTURE:
if(PWR_ON_SETUP != sf_cardv_convert_power_on_mode()){ sf_cardv_cap_start();
if(TRUE != sf_is_preview()){
UIMenuStoreInfo *puiPara = sf_ui_para_get();
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
int iNextMode = PRIMARY_MODE_PHOTO;
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
{
iNextMode = PRIMARY_MODE_PHOTO;
}
else if(puiPara->CamMode == SF_CAM_MODE_VIDEO)
{
iNextMode = PRIMARY_MODE_MOVIE;
}
else
{
iNextMode = PRIMARY_MODE_PHOTO;
}
UI_SetData(FL_PreMode, iCurrMode);
UI_SetData(FL_NextMode, iNextMode);
Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode);
vos_util_delay_ms(400);
}
}
FlowPhoto_DoCapture();
break; break;
case SF_WIFI_CMD_HD_TURE: case SF_WIFI_CMD_HD_TURE:
if(!hdFlagInit) if(!hdFlagInit)
@ -2437,3 +2417,53 @@ BOOL sf_cmd_ftp_switch(unsigned char argc, char **argv)
printf("[%s:%d] FtpSwitch:%d\n", __FUNCTION__, __LINE__,puiPara->FtpSwitch); printf("[%s:%d] FtpSwitch:%d\n", __FUNCTION__, __LINE__,puiPara->FtpSwitch);
return TRUE; return TRUE;
} }
void* sf_cardv_cap_thread(void *arg)
{
if(PWR_ON_SETUP != sf_cardv_convert_power_on_mode()){
if(TRUE != sf_is_preview()){
UIMenuStoreInfo *puiPara = sf_ui_para_get();
int iCurrMode = System_GetState(SYS_STATE_CURRMODE);
int iNextMode = PRIMARY_MODE_PHOTO;
if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
{
iNextMode = PRIMARY_MODE_PHOTO;
}
else if(puiPara->CamMode == SF_CAM_MODE_VIDEO)
{
iNextMode = PRIMARY_MODE_MOVIE;
}
else
{
iNextMode = PRIMARY_MODE_PHOTO;
}
UI_SetData(FL_PreMode, iCurrMode);
UI_SetData(FL_NextMode, iNextMode);
Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode);
vos_util_delay_ms(1000);
}
}
FlowPhoto_DoCapture();
CapTskCfg.IsRun = 0;
return NULL;
}
UINT32 sf_cardv_cap_start(void)
{
SINT32 ret = 1;
if(CapTskCfg.IsRun)
{
SLOGE("thread has already run !!!\n");
return 1;
}
ret = pthread_create(&CapTskCfg.TskId, NULL, sf_cardv_cap_thread, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread creat fail!\n");
return ret;
}
CapTskCfg.IsRun = 1;
return SF_SUCCESS;
}