diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 38277e620..cd11d06f3 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -981,6 +981,7 @@ #define SF_CAM_UP_FILE_PATH "FW98565A.bin" #define SF_CAMERA_GPS_INFO_FILENAME "/tmp/gps.txt" #define SF_LOW_POWER_WARN_FILENAME "/tmp/btalarm.txt" +#define SF_DAILYREPORT_FILENAME "/tmp/d.txt" #define SF_UBOOT_UPDATA_FW ENABLE diff --git a/code/application/source/cardv/SrcCode/System/sys_usrmem.c b/code/application/source/cardv/SrcCode/System/sys_usrmem.c index 5b7366b98..da15c663d 100644 --- a/code/application/source/cardv/SrcCode/System/sys_usrmem.c +++ b/code/application/source/cardv/SrcCode/System/sys_usrmem.c @@ -218,6 +218,48 @@ INT32 sys_usrmem_init(SYS_USRMEM* usrmem) return E_SYS; } +INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size) +{ + if(usrmem == NULL){ + DBG_ERR("usrmem can't be null!\n"); + return E_SYS; + } + + if(usrmem->addr_photo == 0){ + DBG_ERR("address photo can't be null!\n"); + return E_SYS; + } + + if(buf == 0){ + DBG_ERR("buf can't be null!\n"); + return E_SYS; + } + + if(size == 0){ + DBG_ERR("size can't be zero!\n"); + return E_SYS; + } + + if(usrmem->is_init == FALSE){ + DBG_ERR("usrmem is not init yet!\n"); + return E_SYS; + } + + + memcpy((void*)usrmem->addr_photo, (void*)buf, size); + usrmem->hdr->photo_ofs = usrmem->used_size; + usrmem->hdr->photo_size = size; + usrmem->hdr->photo_sum = MemCheck_CalcCheckSum16Bit(usrmem->addr_photo, size); + usrmem->used_size += size; + + hd_common_mem_flush_cache((void*)usrmem->addr, usrmem->used_size); + + DBG_DUMP("photo addr:%lx, size:%lx, sum:%lx\n", usrmem->addr_photo, usrmem->hdr->photo_size, usrmem->hdr->photo_sum); + + return E_OK; + +} + INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size) { if(usrmem == NULL){ diff --git a/code/application/source/cardv/SrcCode/System/sys_usrmem.h b/code/application/source/cardv/SrcCode/System/sys_usrmem.h index 757ea5826..03c6be1b6 100644 --- a/code/application/source/cardv/SrcCode/System/sys_usrmem.h +++ b/code/application/source/cardv/SrcCode/System/sys_usrmem.h @@ -35,6 +35,7 @@ INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size); #else INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size); +INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size); #endif diff --git a/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c b/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c index c795bfea5..4e0dcd505 100755 --- a/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c +++ b/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c @@ -29,6 +29,8 @@ static UINT32 m_uiPhotoQuality = 0; static BOOL m_bCertified = FALSE; + +UINT32 Imgexp = 0,Imgiso = 0; //sun chen@20240111 static const INT32 EV_NUMERATOR[(EV_SETTING_MAX)] = { 20, 17, @@ -195,7 +197,7 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) UINT16 uiSceneCaptureType = 0; UINT16 uiSharpness = 0; UINT32 RecID; - HD_RESULT hd_ret; + //HD_RESULT hd_ret; RecID = ImageApp_MovieMulti_VePort2Imglink(HandleID); @@ -269,7 +271,8 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) { UINT32 expo = 0; float fexpo; - AET_STATUS_INFO status = {0}; +/*.............sun chen@20240111 start.................*/ + //AET_STATUS_INFO status = {0}; #if 0//_TODO AE_GetExifInfo(0, &uiISOSpeed, &expo, &uiAperture[0], &MaxAperture[0]); #else @@ -278,8 +281,8 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) uiAperture[0] = 20; MaxAperture[0] = 20; #endif - status.id=RecID; - if ((hd_ret = vendor_isp_init()) != HD_OK) { + //status.id=RecID; + /*if ((hd_ret = vendor_isp_init()) != HD_OK) { DBG_ERR("vendor_isp_init() failed(%d)\r\n", hd_ret); } if ((hd_ret = vendor_isp_get_ae(AET_ITEM_STATUS, &status)) != HD_OK) { @@ -287,11 +290,11 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) } if ((hd_ret = vendor_isp_uninit()) != HD_OK) { DBG_ERR("vendor_isp_uninit() failed(%d)\r\n", hd_ret); - } - uiISOSpeed=status.status_info.iso_gain[0]; - expo=status.status_info.expotime[0]; - DBG_MSG("RecID=%d, uiISOSpeed=%d, expo=%d\r\n",RecID,uiISOSpeed,expo); - + }*/ + uiISOSpeed= Imgiso;//status.status_info.iso_gain[0]; + expo= Imgexp;//status.status_info.expotime[0]; + DBG_ERR("RecID=%d, uiISOSpeed=%d, expo=%d\r\n",RecID,uiISOSpeed,expo); +/*.............sun chen@20240111 end.................*/ uiFNumber[0] = uiAperture[0]; uiAperture[0] = 20 * log2((float)uiAperture[0] / 10); diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index fa62f8e59..473e801d4 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -38,7 +38,7 @@ #include "vendor_videoout.h" #include "IOCfg.h" -#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER +#define THIS_DBGLVL 6 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// #define __MODULE__ UiAppMovie #define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL) @@ -147,6 +147,7 @@ static void xUSBMakerInit_UVAC(UVAC_VEND_DEV_DESC *pUVACDevDesc) } #endif //#if (MOVIE_UVAC_FUNC == ENABLE) +extern UINT32 Imgexp,Imgiso; extern void GOIO_Turn_Onoff_IRCUT(UINT8 onoff); extern void GPIO_IRLed_Turn_Onoff(BOOL onoff); /* @@ -344,40 +345,32 @@ INT32 Set_Cur_Day_Night_Status(BOOL OnOff, UINT8 isSnapVideo) vendor_isp_set_iq(IQT_ITEM_NIGHT_MODE, &night_mode); - if ((hd_ret = vendor_isp_uninit()) != HD_OK) { - DBG_ERR("vendor_isp_uninit() fail(%d)\r\n", hd_ret); - } +/*.............sun chen@20240111 start.................*/ + if (OnOff){ vos_util_delay_ms(1000); } + vendor_isp_get_ae(AET_ITEM_STATUS, &ae_status_info); if (isSnapVideo == 0) { - if ((hd_ret = vendor_isp_init()) != HD_OK) { - DBG_ERR("vendor_isp_init() fail(%d)\r\n", hd_ret); - } + + Imgexp = ae_status_info.status_info.expotime[0]; + Imgiso = ae_status_info.status_info.iso_gain[0]; if (OnOff){ ae_manual.manual.mode = 1; - if (puiPara->NightMode == 0) { - ae_manual.manual.expotime = 125000;//ae_status.status_info.expotime[0]; - ae_manual.manual.iso_gain = ae_status_info.status_info.iso_gain[0]*ae_status_info.status_info.expotime[0]/125000; - } - else if (puiPara->NightMode == 1) { - ae_manual.manual.expotime = 66666;//ae_status.status_info.expotime[0]; - ae_manual.manual.iso_gain = ae_status_info.status_info.iso_gain[0]*ae_status_info.status_info.expotime[0]/66666; - } - else { ae_manual.manual.expotime = ae_status_info.status_info.expotime[0]; ae_manual.manual.iso_gain = ae_status_info.status_info.iso_gain[0]; - } + } else { ae_manual.manual.mode = 0; } vendor_isp_set_ae(AET_ITEM_MANUAL, &ae_manual); + } if ((hd_ret = vendor_isp_uninit()) != HD_OK) { DBG_ERR("vendor_isp_uninit() fail(%d)\r\n", hd_ret); - } +/*.............sun chen@20240111 end.................*/ } return 0; } @@ -1280,7 +1273,7 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) else if(id == _CFG_CLONE_ID_1){ snprintf(thumb_current_path_clone, sizeof(thumb_current_path_clone), "%s", tmp); } - DBG_DUMP("last send file:%s\r\n", tmp); + DBG_DUMP("id:%d last send file:%s\r\n", id, tmp); #else if(id == _CFG_REC_ID_1){ snprintf(thumb_current_path_main, sizeof(thumb_current_path_main), "%s", pFileName); diff --git a/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c b/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c index 28dc0d4c4..56f75ee17 100755 --- a/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c +++ b/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c @@ -1285,6 +1285,8 @@ void MovieStamp_CombineStamp(UINT32 vid_in, UINT32 bg_color) UINT32 lineoff[HD_VIDEO_MAX_PLANE] = {0}; UINT32 addr[HD_VIDEO_MAX_PLANE] = {0}; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + char name[16]; INT16 cTemper = 0; INT16 fTemper = 0; @@ -1419,6 +1421,15 @@ void MovieStamp_CombineStamp(UINT32 vid_in, UINT32 bg_color) padding, &x_curr_ofs); + //camid stamp + if((puiPara->CamNameSwitch == SF_CAMID_ON) && (puiPara->CamNameStr[0] != '\0')) + { + snprintf((char *)customString, sizeof(customString), "%s", puiPara->CamNameStr); + DBG_IND("[%s:%d]customString=%s\n", __FUNCTION__, __LINE__, customString); + //sprintf(customString, "Cam1"); + MovieStamp_AttachString(combined_stamp_h, &Img, customString, font, false, padding, &x_curr_ofs); + } + /*printf("[%s:%d]moon id=%d,battery id=%d\n", __FUNCTION__, __LINE__, (LV_PLUGIN_IMG_ID_ICON_10200_MOON + moonday), (LV_PLUGIN_IMG_ID_ICON_10230_BATTERT + batValue));*/ diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index a7274cda3..c264be46b 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -40,7 +40,7 @@ #include "DCF.h" #endif #include "SF_SysStrgMng.h" - +#include "sys_usrmem.h" #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER @@ -6879,14 +6879,15 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) extern INT32 ImageApp_Photo_WriteCB(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId); IMG_CAP_FST_INFO FstStatus = {FST_STA_OK}; - UINT32 dcf_handle = (UINT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */ + INT32 dcf_handle = (INT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */ - FstStatus.Status = ImageApp_Photo_WriteCB( + if(dcf_handle >= 0) + { + FstStatus.Status = ImageApp_Photo_WriteCB( (UINT32)queue_ele_in->jpg_combined_addr, queue_ele_in->jpg_combined_size, HD_CODEC_TYPE_JPEG, dcf_handle); - { char* file_path = ImageApp_Photo_GetLastWriteFilePath(); char tmp[256] = {'\0'}; UINT32 length = strlen(file_path); @@ -6940,6 +6941,19 @@ INT32 PhotoExe_Preview_SliceEncode_CB3(void* user_data) } #endif } + else + { + DBG_WRN("filesys not ready, store data into mem\n"); + SYS_USRMEM usrmem = {0}; + + if(sys_usrmem_init(&usrmem) == E_OK){ + sys_usrmem_write_photo( + &usrmem, + (UINT32) queue_ele_in->jpg_thumb_addr, + queue_ele_in->jpg_thumb_size + ); + } + } if(PhotoCapMsgCb){ PhotoCapMsgCb(IMG_CAP_CBMSG_FSTOK, &FstStatus); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index 796209f32..cbdec2782 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -84,6 +84,7 @@ static lv_obj_t *g_preview_info_msgbox = NULL; static lv_obj_t *g_preview_info_label = NULL; static int g_preview_info_ishidden = true; static lv_task_t* preview_info_task = NULL; +extern DCF_HANDLE System_Get_DCF_Handle(void); static void preview_info_task_cb(lv_task_t* task) { static int count = 0; @@ -1894,6 +1895,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) { #if HUNTING_CAMERA_MCU == ENABLE UIMenuStoreInfo *puiPara = sf_ui_para_get(); + INT32 dcf_handle = -1; #endif if(msg == NULL){ @@ -1913,7 +1915,15 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) case UIAPPPHOTO_CB_CAPSTART: #if HUNTING_CAMERA_MCU == ENABLE sf_set_cap_statu(TRUE); - sf_set_cammode_statu(puiPara->CamMode); + dcf_handle = (INT32)System_Get_DCF_Handle(); /* 0:emmc 1:sd */ + if(dcf_handle >= 0) + { + sf_set_cammode_statu(puiPara->CamMode); + } + else { + DBG_WRN("filesys not ready, CamMode SF_CAM_MODE_PHOTO\n"); + sf_set_cammode_statu(SF_CAM_MODE_PHOTO); + } #endif if(obj == UIFlowPhoto) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index 649e12777..a9d46b08b 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -271,6 +271,8 @@ #define DEFAULT_PIC_UP_DAILY_REPORT SF_OFF #define DEFAULT_BLU_SWITCH SF_ON #define DEFAULT_WIFI_SWITCH SF_ON +#define DEFAULT_UPDATEFLG_SWITCH SF_ON + #define SIFAR_FTP_IP "119.23.174.139" #define SIFAR_FTP_PORT "21" #define SIFAR_FTP_USERNAME "cameraftp" diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index a9adf9078..2447800a7 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -1793,6 +1793,8 @@ void SysResetFlag(void) puiPara->PicUpDailyReport = DEFAULT_PIC_UP_DAILY_REPORT; puiPara->BluSwitch = DEFAULT_BLU_SWITCH; puiPara->WifiSwitch = DEFAULT_WIFI_SWITCH; + puiPara->UpdateFlg = DEFAULT_UPDATEFLG_SWITCH; + if(puiPara->ModuleImei[0] != '\0') { puiPara->DailyReportTime.Hour = ((UINT16)(puiPara->ModuleImei[11]-48)*10+(puiPara->ModuleImei[12]-48))%12; diff --git a/code/application/source/sf_app/code/include/sf_4G_sms_lpa_cmd.h b/code/application/source/sf_app/code/include/sf_4G_sms_lpa_cmd.h index 6a848dc9f..d672e26fa 100755 --- a/code/application/source/sf_app/code/include/sf_4G_sms_lpa_cmd.h +++ b/code/application/source/sf_app/code/include/sf_4G_sms_lpa_cmd.h @@ -54,11 +54,13 @@ #define SF_LPA_PROFILE_INFO_FILENEME (UINT8 *)"B:\\UDF\\profile_info.txt" #define SF_LPA_PROFILE_INFO_BACKUP_FILENEME (UINT8 *)"B:\\UDF\\profile_info_backup.txt" #else +// to do: save in flash #define SF_LPA_DOWNLOAD_PROFILE_AC_FILENEME "/tmp/download_ac.txt" #define SF_LPA_DOWNLOAD_ENABLE_PROFILE_AC_FILENEME "/tmp/download_enable_ac.txt" #define SF_LPA_PROFILE_INFO_FILENEME "/tmp/profile_info.txt" -#define SF_LPA_PROFILE_INFO_BACKUP_FILENEME "profile_info.txt" -#define SF_LPA_LOG_FILE_PATH "/mnt/sd/" //No use + +#define SF_LPA_PROFILE_INFO_BACKUP_FILENEME "/mnt/sd/profile_info.txt" +#define SF_LPA_LOG_FILE_PATH "/mnt/sd/" #endif typedef struct SF_SMS_LPA_CMD_S{ diff --git a/code/application/source/sf_app/code/include/sf_ftp.h b/code/application/source/sf_app/code/include/sf_ftp.h index 327094678..4b2a3accb 100755 --- a/code/application/source/sf_app/code/include/sf_ftp.h +++ b/code/application/source/sf_app/code/include/sf_ftp.h @@ -224,7 +224,8 @@ SINT32 sf_low_power_warn_send_ftp(void); double sf_sys_s_time_get(time_t end_time); time_t sf_time (time_t *__timer); SINT32 sf_gps_send_ftp(void); -SINT32 sf_test_send_file_to_ftp(void); +SINT32 sf_mem_send_file_to_ftp(void); SINT32 sf_card_log_send_ftp(void); +SINT32 sf_ftp_lpa_log_send(void); #endif /*_SF_FTP_H_*/ diff --git a/code/application/source/sf_app/code/include/sf_param_enum.h b/code/application/source/sf_app/code/include/sf_param_enum.h index 38361b441..3ed5a9ee2 100755 --- a/code/application/source/sf_app/code/include/sf_param_enum.h +++ b/code/application/source/sf_app/code/include/sf_param_enum.h @@ -142,7 +142,6 @@ extern "C" { #define SIFAR_CUSTOMER_PARAM_PATH "/misc/sfSysParm.bin" #define SIFAR_STATISTICS_PARAM_PATH "THUMB/sfStatisticsParm.bin" //#define SF_SEND_LIST_DIR SF_SD_ROOT"THUMB" -#define SF_DAILYREPORT_FILENAME "THUMB/d.txt" #define SF_ERROR_CODE "THUMB/warning.txt" #define SF_DAILYREPORT_TXT "DailyReport.txt" #define SF_LOG_TXT "log.txt" diff --git a/code/application/source/sf_app/code/include/sf_param_struct.h b/code/application/source/sf_app/code/include/sf_param_struct.h index 0a539ed0e..e9f0132d7 100755 --- a/code/application/source/sf_app/code/include/sf_param_struct.h +++ b/code/application/source/sf_app/code/include/sf_param_struct.h @@ -234,7 +234,21 @@ typedef struct sfPDT_PARAM_STATISTICS_S SF_SUBSCRIBE_FILE_ATTR_S stSubscribe; SF_OSS_S stOssCfg; SF_PARA_TIME_S httpTime; - + UINT32 TotalPicsSent; + UINT32 TotalPicsSuccess; + UINT32 TotalPicsFailed; + UINT32 TotalPicsTimeout; + UINT32 TotalTransmissionTime; + UINT32 ThumbnailTransmissionTime; + UINT32 ThumbnailPicsSent; + UINT32 ThumbnailPicsFailed; + UINT32 HDTransmissionTime; + UINT32 HDPicsSent; + UINT32 HDPicsFailed; + UINT32 VideoTransmissionTime; + UINT32 VideoSent; + UINT32 VideoFaild; + UINT32 picSendCount; UINT32 sendThumbnailCount; UINT32 picSendSucessCount; diff --git a/code/application/source/sf_app/code/include/sys_usrmem.h b/code/application/source/sf_app/code/include/sys_usrmem.h index 757ea5826..03c6be1b6 100644 --- a/code/application/source/sf_app/code/include/sys_usrmem.h +++ b/code/application/source/sf_app/code/include/sys_usrmem.h @@ -35,6 +35,7 @@ INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size); #else INT32 sys_usrmem_read_photo(SYS_USRMEM* usrmem, UINT32* addr, UINT32* size); +INT32 sys_usrmem_write_photo(SYS_USRMEM* usrmem, UINT32 buf, UINT32 size); #endif diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index e982a7731..abb6fcc44 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -3633,6 +3633,26 @@ SINT32 sf_net_regist_manual(void) ttyData.cmp = "OK"; ttyData.len = strlen(gsmPara) + 2; } + else if((strstr((const char *)gsmPara, "+CGREG: 0,3") != NULL)) + { + if(callTime > 3) + { + ret = SF_SIM_ERROR_REG_NET_REFUSE; + printf("[%s:%d]AT+CGREG? REG_NET_REFUSE.\n", __FUNCTION__, __LINE__); + SLOGE(gsmPara); + sprintf((char *)logStr, "AT+CGREG? REG_NET_REFUSE,Error Code:0x%08X\n", ret); + SLOGE(logStr); + goto SF_NET_REG_END; + } + else + { + sprintf((char *)gsmPara, "AT+CGREG?\r"); + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); + SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + sf_sleep_ms(300); + } + callTime++; + } else { //callTime--; diff --git a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c index 10dc17a66..1f30153e7 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c @@ -52,6 +52,7 @@ extern "C" { #include "ftp_manager.h" #include "sf_system.h" #include "curl/curl.h" +#include "sf_4G_sms_lpa_cmd.h" /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -889,6 +890,8 @@ SINT32 sf_pic_send_ftp(void) UINT8 csqlevel = 0; int timeout = 120000; //SINT64 sendStartTime = 0; + UINT8 sendAlreadyFlag = 0; + UINT8 timeoutCnt = 0; SF_SRCFILE_ATTR_S *pThumbFileCfg = sf_file_thumb_cfg_get(); MLOGD("start\n"); @@ -962,13 +965,17 @@ SINT32 sf_pic_send_ftp(void) if(SF_SUCCESS == ret) { ret = sf_ftp_send(ftpFileName[pic], filePath[pic], timeout); - + pSifarPara->TotalPicsSent++; if(SF_SUCCESS != ret) { pSifarPara->picSendFailCount++; pSifarPara->sendThumbnailFailCount++; //TIMEOUT //pSifarPara->picSendTimeoutCount++; + if(!sf_get_pic()) + { + timeoutCnt++; + } printf("%s:%d err ftpFileName:%s filePath:%s picSendFailCount:%d sendThumbnailFailCount:%d\n", __FUNCTION__, __LINE__, ftpFileName[pic], filePath[pic],pSifarPara->picSendFailCount, pSifarPara->sendThumbnailFailCount); SF_SPRINTF(logStr, "%x,", ret); sf_log_error_code(logStr); @@ -976,6 +983,10 @@ SINT32 sf_pic_send_ftp(void) else { if(!sf_get_mode_flag()){ pSifarPara->picSendMax++; + if(!sf_get_pic()) + { + sendAlreadyFlag++; + } } pSifarPara->picSendSucessCount++; if((pPara->SendMaxNum == 0) || (pSifarPara->picSendMax < pPara->SendMaxNum)){ @@ -998,7 +1009,11 @@ SINT32 sf_pic_send_ftp(void) } } // sendEndTime = clock(); - + //pSifarPara->TotalPicsSent++; + pSifarPara->TotalPicsSuccess += sendAlreadyFlag; + pSifarPara->TotalPicsFailed += timeoutCnt; + pSifarPara->ThumbnailPicsSent += sendAlreadyFlag; + pSifarPara->ThumbnailPicsFailed += timeoutCnt; //pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; @@ -1095,6 +1110,41 @@ SINT32 sf_video_send_ftp(void) return ret; } +SINT32 sf_ftp_lpa_log_send(void) +{ + SINT32 ret = SF_SUCCESS; + //UINT8 CamNameStr[20] = { 0 }; + //UINT8 uploadFname[64] = { 0 }; + UINT8 lpaFile[64] = { 0 }; + UINT8 filePath[64] = { 0 }; + int timeout = 60000; + MLOGD("start\n"); + + printf("%s:%d filePath:%s\n", __FUNCTION__, __LINE__, filePath); + sprintf((char *)lpaFile, "%s", sf_sms_lpa_log_file_name_get()); + sprintf((char *)filePath, "%s%s", SF_LPA_LOG_FILE_PATH, lpaFile); + + ret = sf_ftp_config(0, 0, timeout); + + if(SF_SUCCESS != ret) + { + printf("%s:%d upload err ret: [0x%08X] filePath:%s\n", __FUNCTION__, __LINE__, ret, filePath); + } + else + { + ret = sf_ftp_send(lpaFile, filePath, timeout); + + if(SF_SUCCESS != ret) + { + printf("%s:%d err ret: [0x%08X] filePath:%s\n", __FUNCTION__, __LINE__, ret, filePath); + } + } + MLOGD(" end ret:[0x%08X]\n", ret); + + return ret; +} + + SINT32 sf_ftp_dailyreport_send(void) { SINT32 ret = SF_SUCCESS; @@ -1108,20 +1158,12 @@ SINT32 sf_ftp_dailyreport_send(void) MLOGD("start\n"); - char *dp_filename = sf_root_path_strcat(SF_DAILYREPORT_FILENAME); - if(dp_filename == NULL) - { - free(dp_filename); - return SF_FAILURE; - } - if(SUCCESS != sf_create_dailyreport_file()) { printf("%s:%d err create dailyreport file\n", __FUNCTION__, __LINE__); return SF_FAILURE; } - sprintf((char *)filePath, "%s", dp_filename); - free(dp_filename); + sprintf((char *)filePath, "%s", SF_DAILYREPORT_FILENAME); //sprintf((char *)filePath, "UFS:/%s-dr.txt", pPara->ModuleImei); printf("%s:%d filePath:%s\n", __FUNCTION__, __LINE__, filePath); @@ -1152,6 +1194,22 @@ SINT32 sf_ftp_dailyreport_send(void) sf_log_error_code(logStr); }else { DailyReportFtpSendSucess = 1; + + pSifarPara->TotalPicsSent = 0; + pSifarPara->TotalPicsSuccess = 0; + pSifarPara->TotalPicsFailed = 0; + pSifarPara->TotalPicsTimeout = 0; + pSifarPara->TotalTransmissionTime = 0; + pSifarPara->ThumbnailTransmissionTime = 0; + pSifarPara->ThumbnailPicsSent = 0; + pSifarPara->ThumbnailPicsFailed = 0; + pSifarPara->HDTransmissionTime = 0; + pSifarPara->HDPicsSent = 0; + pSifarPara->HDPicsFailed = 0; + pSifarPara->VideoTransmissionTime = 0; + pSifarPara->VideoSent = 0; + pSifarPara->VideoFaild = 0; + pSifarPara->picSendCount = 0; pSifarPara->sendThumbnailCount = 0; pSifarPara->picSendSucessCount = 0; @@ -1327,6 +1385,9 @@ SINT32 sf_send_file_to_ftp(UINT8 mode) //sendEndTime = clock(); time(&sendEndTime); double elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->TotalTransmissionTime += elapsed_time; + pSifarPara->ThumbnailTransmissionTime += elapsed_time; + pSifarPara->picSendTimeCount +=elapsed_time; pSifarPara->sendThumbnailTimeCount += elapsed_time; MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); @@ -1497,7 +1558,7 @@ SINT32 sf_connect_ftps_server(void) *************************************************/ SINT32 sf_camera_ota_ftp(void) { - char Cmd[128] = {0}; + //char Cmd[128] = {0}; UIMenuStoreInfo *pPara = sf_app_ui_para_get(); SINT32 ret = SF_SUCCESS; FtpSslFlag ssl_flag = FTP_SSL_FLAG_END; @@ -1717,6 +1778,9 @@ SF_CONCENTRATED_END: time(&sendEndTime); double elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->TotalTransmissionTime += elapsed_time; + pSifarPara->ThumbnailTransmissionTime += elapsed_time; + pSifarPara->picSendTimeCount +=elapsed_time; pSifarPara->sendThumbnailTimeCount += elapsed_time; MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); @@ -1738,11 +1802,18 @@ SF_CONCENTRATED_END: if(SendFileTotal) { SLOGI("Concentrated Send end.\n"); + pSifarPara->TotalPicsSent += (sendAlreadyFlag + timeoutCnt); + pSifarPara->TotalPicsSuccess += sendAlreadyFlag; + pSifarPara->TotalPicsFailed += timeoutCnt; + pSifarPara->TotalPicsTimeout += timeoutCnt; + pSifarPara->ThumbnailPicsSent += (piccount+1); + pSifarPara->ThumbnailPicsFailed += timeoutCnt; + pSifarPara->picSendCount += (piccount+1); pSifarPara->sendThumbnailCount += (piccount+1); pSifarPara->picSendSucessCount += sendAlreadyFlag; - pSifarPara->picSendFailCount += ((piccount + 1) - sendAlreadyFlag); - pSifarPara->sendThumbnailFailCount += ((piccount + 1) - sendAlreadyFlag); + pSifarPara->picSendFailCount += ((piccount + 1) - (sendAlreadyFlag + 1)); + pSifarPara->sendThumbnailFailCount += ((piccount + 1) - (sendAlreadyFlag + 1)); pSifarPara->picSendTimeoutCount += timeoutCnt; } //printf("[%s:%d]ret1:[0x%08X],ret2:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret1, ret2); @@ -1865,6 +1936,8 @@ SINT32 sf_hd_ftp_send(void) sendFailFlag++; time(&sendEndTime); elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->TotalTransmissionTime += elapsed_time; + pSifarPara->picSendTimeCount +=elapsed_time; pSifarPara->sendThumbnailTimeCount += elapsed_time; MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); @@ -1911,6 +1984,9 @@ SF_HD_END: time(&sendEndTime); elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->TotalTransmissionTime += elapsed_time; + pSifarPara->HDTransmissionTime += elapsed_time; + pSifarPara->picSendTimeCount +=elapsed_time; MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); time(&sendStartTime); @@ -1931,12 +2007,19 @@ SF_HD_END: if(SendFileTotal) { SLOGI("Concentrated Send end.\n"); + pSifarPara->TotalPicsSent += (sendAlreadyFlag + timeoutCnt); + pSifarPara->TotalPicsTimeout += timeoutCnt; + pSifarPara->HDPicsSent += (piccount+1); + pSifarPara->HDPicsFailed += timeoutCnt; + + pSifarPara->picSendCount += (piccount+1); pSifarPara->sendThumbnailCount += (piccount+1); pSifarPara->picSendSucessCount += sendAlreadyFlag; - pSifarPara->picSendFailCount += ((SendFileTotal + 1) - sendAlreadyFlag); + pSifarPara->picSendFailCount += ((SendFileTotal + 1) - (sendAlreadyFlag + 1)); //pSifarPara->sendThumbnailFailCount += ((piccount + 1) - sendAlreadyFlag); pSifarPara->picSendTimeoutCount += timeoutCnt; + MLOGD("[%s:%d]TotalPicsSent:%d\n\n", pSifarPara->TotalPicsSent); } //printf("[%s:%d]ret1:[0x%08X],ret2:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret1, ret2); MLOGD(" end ret1:[0x%08X],ret2:[0x%08X]\n", ret1, ret2); @@ -2150,6 +2233,7 @@ SF_VIDEO_END: time(&sendEndTime); elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->VideoTransmissionTime += elapsed_time; pSifarPara->videoSendTimeCount +=elapsed_time; MLOGD("SendTime:%d s videoSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->videoSendTimeCount,pSifarPara->sendThumbnailTimeCount); time(&sendStartTime); @@ -2165,8 +2249,13 @@ SF_VIDEO_END: if(SendFileTotal) { SLOGI("Send end.\n"); + pSifarPara->TotalPicsSent += (sendAlreadyFlag + timeoutCnt); + pSifarPara->TotalPicsTimeout += timeoutCnt; + pSifarPara->VideoSent += (sendAlreadyFlag + timeoutCnt); + pSifarPara->VideoFaild += (timeoutCnt); + pSifarPara->videoSendSucessCount += sendAlreadyFlag; - pSifarPara->videoSendFailCount += ((SendFileTotal + 1) - sendAlreadyFlag); + pSifarPara->videoSendFailCount += ((SendFileTotal + 1) - (sendAlreadyFlag + 1)); pSifarPara->picSendTimeoutCount += timeoutCnt; } @@ -2403,14 +2492,14 @@ SINT32 sf_gps_send_ftp(void) #if SF_NO_SD_SEND == ENABLE /************************************************* - Function: sf_ftp_config + Function: sf_mem_ftp_config Description: send pic to ftp Input: N/A Output: N/A Return: 0 SUCCESS, 1 error Others: N/A *************************************************/ -SINT32 sf_test_ftp_config(UINT8 ssl, UINT8 GprsMode, int timeout) +SINT32 sf_mem_ftp_config(UINT8 ssl, UINT8 GprsMode, int timeout) { UIMenuStoreInfo *pPara = sf_app_ui_para_get(); SINT32 ret = SF_SUCCESS; @@ -2738,14 +2827,14 @@ SINT32 sf_test_ftp_config(UINT8 ssl, UINT8 GprsMode, int timeout) } /************************************************* - Function: sf_ftp_send + Function: sf_mem_ftp_send Description: send pic to ftp Input: N/A Output: N/A Return: 0 SUCCESS, 1 error Others: N/A *************************************************/ -SINT32 sf_test_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, int timeout) +SINT32 sf_mem_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, int timeout) { #if 1 SINT32 ret = SF_SUCCESS; @@ -2870,14 +2959,14 @@ SINT32 sf_test_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, int timeout) } /************************************************* - Function: sf_ftp_send - Description: send pic to ftp + Function: sf_mem_ftp_stop + Description: send pic to ftp stop Input: N/A Output: N/A Return: 0 SUCCESS, 1 error Others: N/A *************************************************/ -SINT32 sf_test_ftp_stop(UINT8 ssl, UINT8 GprsMode) +SINT32 sf_mem_ftp_stop(UINT8 ssl, UINT8 GprsMode) { #if 1 SINT32 ret = SF_SUCCESS; @@ -3050,7 +3139,7 @@ SINT32 sf_test_ftp_stop(UINT8 ssl, UINT8 GprsMode) Return: 0:success; else:fail; Others: N/A *************************************************/ -SINT32 sf_test_send_file_to_ftp(void) +SINT32 sf_mem_send_file_to_ftp(void) { SINT32 ret1 = SF_SUCCESS; //0:success; else:fail; SINT32 ret2 = SF_SUCCESS; //0:success; else:fail; @@ -3078,7 +3167,7 @@ SINT32 sf_test_send_file_to_ftp(void) printf("netGeneration:%dG,tempPicSize=%d,piccount=%d,pic=%d\n", sf_get_net_generation(), tempPicSize, piccount, pic); - sprintf((char *)ftpFileName, "%sMEMPHOTO.JPG", cameraID); + sprintf((char *)ftpFileName, "%sN-E1000001.JPG", cameraID); sprintf((char *)filePath, "UFS:MEMPHOTO.JPG"); printf("%s:%d ftpFileName:%s filePath:%s \n", __FUNCTION__, __LINE__, ftpFileName, filePath); @@ -3089,16 +3178,16 @@ SINT32 sf_test_send_file_to_ftp(void) printf("[%s:%d] ssl:%d,GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode); - ret1 = sf_test_ftp_config(ssl, gprsMode, timeout); + ret1 = sf_mem_ftp_config(ssl, gprsMode, timeout); if(SF_SUCCESS == ret1) { - ret1 = sf_test_ftp_send(ftpFileName, filePath, timeout); + ret1 = sf_mem_ftp_send(ftpFileName, filePath, timeout); } if(ret1 != SF_FTP_ERROR_TERM) { - ret2 = sf_test_ftp_stop(ssl, gprsMode); + ret2 = sf_mem_ftp_stop(ssl, gprsMode); } MLOGD(" end ret1:[0x%08X],ret2:[0x%08X]\n", ret1, ret2); diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index f51e78bb5..fc0f023f5 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -42,6 +42,8 @@ #include "sf_fileMng.h" #include "sf_battery.h" #include "sf_system.h" +#include "sf_4G_sms_lpa_cmd.h" + /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -1282,6 +1284,159 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s return Readmmsok; } + + +UINT8 sf_poweroff_check_lpa_excute_cmd(void) +{ + //sf_mcu_watchdog_set(5); + sf_sms_lpa_download_command_add_to_list(); + sf_sms_lpa_command_execute(); + if(sf_sms_lpa_is_need_send_lpa_log() && (!sf_sms_lpa_is_need_enable_profile())) + { + sf_sms_lpa_set_send_lpa_log_flg(FALSE); + // to do: send lpa log + sf_ftp_lpa_log_send(); + } + return 0; +} + +UINT8 sf_poweroff_check_lpa_enable_profile(void) +{ + if(sf_sms_lpa_is_need_enable_profile()) + { + sf_sms_lpa_command_enable_profile_handle(sf_sms_lpa_get_enable_profile_cmd_val()); + sf_sms_lpa_clean_need_enable_iccid(); + + if(!sf_sms_lpa_is_need_profile_switch_reboot() && sf_sms_lpa_is_need_send_lpa_log()) + { + sf_sms_lpa_set_send_lpa_log_flg(FALSE); + + // to do: send lpa log + sf_ftp_lpa_log_send(); + printf("enter send LPA LOG\n"); + + } + else + { + printf("profile enable, reboot to re search net\n"); + ///sf_set_netsearch_step(SIM_NETSEARCH_STEP_IDLE); + + //to do: poweroff 4G MODELU power off, a reboot + sf_cmd_camera_restart(1); + return 0; + } + } +} + +UINT8 sf_sms_content_parse(SF_CHAR *smsStr) +{ + SF_CHAR strValue[32][32]= {0}; + SF_CHAR *temp = NULL; + SF_CHAR *lpaCmdStr = NULL; + UINT16 i = 0; + UINT16 smsCnt = 0; + UINT8 ret; + SF_SMS_LPA_CMD_T *pLpaCmd = NULL; + //UIMenuStoreInfo *sfParam = sf_app_ui_para_get(); + //SF_PDT_PARAM_STATISTICS_S *sfStat = sf_statistics_param_get(); + + if(strlen(smsStr) > 0) + { + + lpaCmdStr = strstr(smsStr, "$R0e*"); + if(lpaCmdStr == NULL) + { + smsCnt = 0; + temp = strsep(&smsStr, "#"); + while(temp != 0) + { + strcpy(strValue[smsCnt], temp); + smsCnt++; + printf("---temp%d:%s\n", smsCnt, temp); + temp = strsep(&smsStr, "#"); + } + } + else + { + smsCnt = 1; + } + } + + if(smsCnt > 0) + { + i = 0; + + if(lpaCmdStr != NULL) + { + //printf("Error Format line-1\n", __LINE__); + //lpaCmdStr = SF_STRSTR(smsStr, "R0e*"); + //printf("Error Format line\n", __LINE__); + + pLpaCmd = malloc(sizeof(SF_SMS_LPA_CMD_T)); + memset(pLpaCmd, 0, sizeof(SF_SMS_LPA_CMD_T)); + + if(pLpaCmd != NULL) + { + if(sf_sms_lpa_command_info_extract((SINT8 *)lpaCmdStr, &pLpaCmd->CmdVal, pLpaCmd->Param1Buff, pLpaCmd->Param2Buff, pLpaCmd->Param3Buff) == SF_SUCCESS) + { + if((pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DOWNLOAD_PROFILE_1) || (pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DOWNLOAD_ENABLE_PROFILE_1)) + { + sf_sms_lpa_save_download_profile_activation_code(pLpaCmd->CmdVal, pLpaCmd->Param1Buff); + //sf_sms_lpa_command_log(pLpaCmd, SF_SMS_LPA_CMD_SUCCESS, LPA_NO_ERROR, SF_SMS_LPA_CMD_ERROR_SOURCE_OTHER); + } + else if((pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DOWNLOAD_PROFILE_2) || (pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DOWNLOAD_ENABLE_PROFILE_2)) + { + sf_sms_lpa_command_handle(pLpaCmd); + } + else if(pLpaCmd->CmdVal == SF_SMS_LPA_CMD_ENABLE_PROFILE) + { + sf_sms_lpa_command_handle(pLpaCmd); + //sf_sms_lpa_command_enable_profile_handle(sf_sms_lpa_get_enable_profile_cmd_val()); + } + else if((pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DELETE_PROFILE) || (pLpaCmd->CmdVal == SF_SMS_LPA_CMD_DELETE_PROFILE_NITIFY)) + { + sf_sms_lpa_command_handle(pLpaCmd); + } + else + { + /*cmd prase fail,need send lpa log*/ + //sf_sms_lpa_command_log(pLpaCmd, SF_SMS_LPA_CMD_FAIL, SF_LPA_CUSTOM_ERROR_CMD_UNKNOWN, SF_SMS_LPA_CMD_ERROR_SOURCE_OTHER); + printf("Error Parameter line:%d i=%d\n", __LINE__, i); + ret = SMS_STATUS_PARA_ERR; + } + } + else + { + /*cmd prase fail,need send lpa log*/ + //sf_sms_lpa_command_log(NULL, SF_SMS_LPA_CMD_FAIL, SF_LPA_CUSTOM_ERROR_CMD_UNKNOWN, SF_SMS_LPA_CMD_ERROR_SOURCE_OTHER); + printf("Error Format line:%d i=%d\n", __LINE__, i); + ret = SMS_STATUS_FORMAT_ERR; + } + + free(pLpaCmd); + } + else + { + /*cmd prase fail,need send lpa log*/ + //sf_sms_lpa_command_log(NULL, SF_SMS_LPA_CMD_FAIL, SF_LPA_CUSTOM_ERROR_MEMORY, SF_SMS_LPA_CMD_ERROR_SOURCE_OTHER); + printf("Error Memory line:%d i=%d\n", __LINE__, i); + ret = SMS_STATUS_FORMAT_ERR; + } + } + else + { + printf("Error Format2 line:%d i=%d\n", __LINE__, i); + ret = SMS_STATUS_FORMAT_ERR; + } + } + else + { + printf("Error Format3 line:%d i=%d\n", __LINE__, i); + ret = SMS_STATUS_NO_RESPONSE; + } + + return ret; +} /************************************************* Function: sf_sms_read_message Description: read message @@ -1526,35 +1681,41 @@ SINT32 sf_sms_read_message(void) break; } */ - - if(strstr((const char *)gsmPara, "$")) + if(strstr((const char *)gsmPara, "$R0e*"))//lpa cmd { - strtok((char *)gsmPara, "$"); - //strcpy((char *)strok, strtok(NULL, "$")); - snprintf((char *)strok, sizeof(strok), "%s", strtok(NULL, "$")); - //printf("strok:%s\n", strok); + Readmmsok = sf_sms_content_parse(gsmPara); } - - if(strlen((const char *)strok) > 0) + else { - mm = 0; - pStr = (char *)strok; - //printf("pStr:%s\n", pStr); - temp = (UINT8 *)strsep(&pStr, "#"); - - while(temp != 0) + if(strstr((const char *)gsmPara, "$")) { - //strcpy((char *)strValue[mm], (const char *)temp); - snprintf((char *)strValue[mm], sizeof(strValue[mm]), "%s", temp); - printf("strValue[%d]:%s\n", mm, strValue[mm]); - mm++; - temp = (UINT8 *)strsep(&pStr, "#"); + strtok((char *)gsmPara, "$"); + //strcpy((char *)strok, strtok(NULL, "$")); + snprintf((char *)strok, sizeof(strok), "%s", strtok(NULL, "$")); + //printf("strok:%s\n", strok); } + + if(strlen((const char *)strok) > 0) + { + mm = 0; + pStr = (char *)strok; + //printf("pStr:%s\n", pStr); + temp = (UINT8 *)strsep(&pStr, "#"); + + while(temp != 0) + { + //strcpy((char *)strValue[mm], (const char *)temp); + snprintf((char *)strValue[mm], sizeof(strValue[mm]), "%s", temp); + printf("strValue[%d]:%s\n", mm, strValue[mm]); + mm++; + temp = (UINT8 *)strsep(&pStr, "#"); + } + } + + Readmmsok = sf_message_data_processing(strValue, mm, &sms_send_mode); } - Readmmsok = sf_message_data_processing(strValue, mm, &sms_send_mode); - - printf("[%s:%d] getCmdFlag:%d Readmmsok:%d\n", __FUNCTION__, __LINE__, getCmdFlag, Readmmsok); + printf("[%s:%d] getCmdFlag:%d Readmmsok:%d\n", __FUNCTION__, __LINE__, getCmdFlag, Readmmsok); if(getCmdFlag) { eSmsLocation = SMS_SIM_CMGR; diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 2cac82bec..caa5a1bd3 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -1275,9 +1275,20 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) { SINT32 sf_cardv_file_to_app_send_thread(void) { SINT32 s32ret = 0; SF_FN_PARAM_S stpfncallback = {0}; + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + if(SF_FAILURE == sf_check_sd()) { MLOGE("ERROR sf_check_sd\n"); + + #if SF_NO_SD_SEND == ENABLE + if((0 == puiPara->SendType) && (0 == sf_usr_mem_photo_ch())) + { + s32ret = sf_mem_send_file_to_ftp(); + return s32ret; + } + #endif + return SF_FAILURE; } stpfncallback.pstParam = sf_customer_param_get(); @@ -1329,9 +1340,9 @@ SINT32 sf_file_send_auto(void) { { MLOGE("ERROR sf_check_sd\n"); #if SF_NO_SD_SEND == ENABLE - if( 0 == sf_usr_mem_photo_ch()) + if((0 == puiPara->SendType) && (0 == sf_usr_mem_photo_ch())) { - s32ret = sf_test_send_file_to_ftp(); + s32ret = sf_mem_send_file_to_ftp(); return s32ret; } #endif @@ -1496,6 +1507,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) usleep(100*1000); } + //to do: 首次升级之后需要删除LPA log if(!sf_is_esim_card() || pCustomerParam->UpdateFlg) { if(pCustomerParam->UpdateFlg) @@ -1503,7 +1515,6 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) pCustomerParam->UpdateFlg = 0; //sf_set_param_save_flag(); } - sf_sms_lpa_delete_lpa_log(); } @@ -1757,6 +1768,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) usleep(100*1000); } + //to do:首次烧录后删除lpa log if(!sf_is_esim_card() || pCustomerParam->UpdateFlg) { if(pCustomerParam->UpdateFlg) @@ -1805,7 +1817,8 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) sf_lpa_get_esim_iccid(simIccidTmp); snprintf((char *)pCustomerParam->SimIccidV, sizeof(pCustomerParam->SimIccidV), (char *)simIccidTmp[0]); snprintf((char *)pCustomerParam->SimIccidA, sizeof(pCustomerParam->SimIccidA), (char *)simIccidTmp[1]); - + + // to do: 注网收到0,3的返回时,返回SF_SIM_ERROR_REG_NET_REFUSE s32ret = sf_4G_register_net_manual(pfnParam); if(pCustomerParam->ProfileSwitchFlg) @@ -1839,7 +1852,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) if(s32ret == SF_SUCCESS) sf_sms_lpa_set_send_lpa_log_flg(1); - // switch prlfile reboot in A reg net, reg 0,1 or reg 0,2, not need reboot again + // switch profile reboot in A reg net, reg 0,1 or reg 0,2, not need reboot again pCustomerParam->NetWorkNeedSearch = 0; } } @@ -1874,6 +1887,12 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) } } //sf_share_mem_customer_down(1); + + //to do :profile,reboot regnet,than send lpa log;log is exist + if(sf_sms_lpa_is_need_send_lpa_log()) + { + sf_ftp_lpa_log_send(); + } break; case SF_MCU_STARTUP_SYN_PARAM: @@ -1899,6 +1918,9 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) set_at_parament(); sf_USB_net_init(); + //to do : send lpa direct + sf_ftp_lpa_log_send(); + if ((SF_ON == pCustomerParam->GpsSwitch) || (pCustomerParam->FristSendDailyAndGps)) { const int KEEP_SERACHING_TIMEOUT_MS = 2000; @@ -2093,6 +2115,7 @@ SINT32 sf_app_to_cardv_hd_ture(void) { return s32ret; } + int sf_check_eth0(void) { FILE *fp; @@ -2110,7 +2133,16 @@ int sf_check_eth0(void) free(output); return 1; } - fgets(output, len, fp); + + // Check if fgets was successful + if (fgets(output, len, fp) == NULL) { + MLOGE("Error reading from ifconfig output\n"); + pclose(fp); + free(output); + return 1; + } + + // Check if usb0 exists if (strstr(output, "eth0") == NULL) { MLOGI("The network card does not exist\n"); pclose(fp); @@ -2118,7 +2150,15 @@ int sf_check_eth0(void) return 1; } - fgets(output, len, fp); + // Read the second line + if (fgets(output, len, fp) == NULL) { + MLOGE("Error reading from ifconfig output\n"); + pclose(fp); + free(output); + return 1; + } + + // Check if an IP address is assigned if (strstr(output, "inet ") == NULL) { MLOGI("The network card exists, but no IP address has been assigned\n"); pclose(fp); @@ -2126,11 +2166,17 @@ int sf_check_eth0(void) return 1; } + // Extract IP address char *ip_address_start = strstr(output, "inet ") + strlen("inet "); char *ip_address_end = strchr(ip_address_start, ' '); - *ip_address_end = '\0'; - MLOGI("IP address of network card eth0: %s\n", ip_address_start); + // Check if ip_address_end is NULL before dereferencing + if (ip_address_end != NULL) { + *ip_address_end = '\0'; + MLOGI("IP address of network card eth0: %s\n", ip_address_start); + } else { + MLOGE("Error extracting IP address\n"); + } pclose(fp); free(output); @@ -2153,7 +2199,16 @@ int sf_check_usb0(void) free(output); return 1; } - fgets(output, len, fp); + + // Check if fgets was successful + if (fgets(output, len, fp) == NULL) { + MLOGE("Error reading from ifconfig output\n"); + pclose(fp); + free(output); + return 1; + } + + // Check if usb0 exists if (strstr(output, "usb0") == NULL) { MLOGI("The network card does not exist\n"); pclose(fp); @@ -2161,7 +2216,15 @@ int sf_check_usb0(void) return 1; } - fgets(output, len, fp); + // Read the second line + if (fgets(output, len, fp) == NULL) { + MLOGE("Error reading from ifconfig output\n"); + pclose(fp); + free(output); + return 1; + } + + // Check if an IP address is assigned if (strstr(output, "inet ") == NULL) { MLOGI("The network card exists, but no IP address has been assigned\n"); pclose(fp); @@ -2169,11 +2232,17 @@ int sf_check_usb0(void) return 1; } + // Extract IP address char *ip_address_start = strstr(output, "inet ") + strlen("inet "); char *ip_address_end = strchr(ip_address_start, ' '); - *ip_address_end = '\0'; - MLOGI("IP address of network card usb0: %s\n", ip_address_start); + // Check if ip_address_end is NULL before dereferencing + if (ip_address_end != NULL) { + *ip_address_end = '\0'; + MLOGI("IP address of network card usb0: %s\n", ip_address_start); + } else { + MLOGE("Error extracting IP address\n"); + } pclose(fp); free(output); diff --git a/code/application/source/sf_app/code/source/fileMng/sf_file.c b/code/application/source/sf_app/code/source/fileMng/sf_file.c index 29378ae7e..36d962269 100755 --- a/code/application/source/sf_app/code/source/fileMng/sf_file.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_file.c @@ -942,26 +942,6 @@ UINT32 sf_create_dailyreport_file(void) char imageSize = 0; char videoSize = 0; /*Avoid New Card*/ - char *thumb_dir = sf_root_path_strcat(SF_THUMB_DIR); - if(thumb_dir == NULL) - { - free(thumb_dir); - return SF_FAILURE; - } - - if (access(thumb_dir, F_OK) == -1) { - printf("%s directory does not exist. Creating...\n", thumb_dir); - - if (mkdir(thumb_dir, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == -1) { - perror("mkdir() error"); - } else { - printf("%s directory created.\n", thumb_dir); - } - } else { - printf("%s directory exists.\n", thumb_dir); - } - free(thumb_dir); - //sf_create_thumb_dir(); if(SF_CAMID_ON == pPara->CamNameSwitch) { @@ -1052,7 +1032,7 @@ UINT32 sf_create_dailyreport_file(void) pPara->SimIccid, \ pSifarPara->TirgNum, \ pSifarPara->NewFlieCount, \ - pSifarPara->picSendCount + pSifarPara->videoSendCount); + pSifarPara->TotalPicsSent); sf_versionGet(localver,localfea); temp = sf_battery_type_get(); @@ -1085,13 +1065,13 @@ UINT32 sf_create_dailyreport_file(void) "Thumbnail Transmission Time:%ld\r\n" "Thumbnail Pics Sent:%ld\r\n" "Thumbnail Pics Failed:%ld\r\n", \ - pSifarPara->picSendSucessCount + (pSifarPara->videoSendCount - pSifarPara->videoSendFailCount), \ - pSifarPara->picSendFailCount + pSifarPara->videoSendFailCount, \ - pSifarPara->picSendTimeoutCount, \ - pSifarPara->picSendTimeCount + pSifarPara->videoSendTimeCount, \ - pSifarPara->sendThumbnailTimeCount, \ - pSifarPara->sendThumbnailCount, \ - pSifarPara->sendThumbnailFailCount); + pSifarPara->TotalPicsSuccess, \ + pSifarPara->TotalPicsFailed, \ + pSifarPara->TotalPicsTimeout, \ + pSifarPara->TotalTransmissionTime, \ + pSifarPara->ThumbnailTransmissionTime, \ + pSifarPara->ThumbnailPicsSent, \ + pSifarPara->ThumbnailPicsFailed); sprintf((char *)szTmp2, "HD Transmission Time:%ld\r\n" "HD Pics Sent:%ld\r\n" @@ -1103,12 +1083,12 @@ UINT32 sf_create_dailyreport_file(void) "FW Ver:%s\r\n" "Mod:%s\r\n" "Power Type:%s\r\n", \ - pSifarPara->picSendTimeCount - pSifarPara->sendThumbnailTimeCount, \ - pSifarPara->picSendCount - pSifarPara->sendThumbnailCount, - pSifarPara->picSendFailCount - pSifarPara->sendThumbnailFailCount,\ - pSifarPara->videoSendTimeCount, \ - pSifarPara->videoSendCount, \ - pSifarPara->videoSendFailCount, \ + pSifarPara->HDTransmissionTime, \ + pSifarPara->HDPicsSent, + pSifarPara->HDPicsFailed,\ + pSifarPara->VideoTransmissionTime, \ + pSifarPara->VideoSent, \ + pSifarPara->VideoFaild, \ localfea, \ localver, \ pPara->ModuleSubver, \ @@ -1287,20 +1267,14 @@ UINT32 sf_create_dailyreport_file(void) printf("szTmp2=%s\n",szTmp2); printf("cfgTmp:%s\n", cfgTmp); - char *dailyrp_file = sf_root_path_strcat(SF_DAILYREPORT_FILENAME); - if(dailyrp_file == NULL) - { - free(dailyrp_file); - return SF_FAILURE; - } - if(sf_file_IsExsit(dailyrp_file) == SF_TRUE){ - sf_file_remove(dailyrp_file); + + if(sf_file_IsExsit(SF_DAILYREPORT_FILENAME) == SF_TRUE){ + sf_file_remove(SF_DAILYREPORT_FILENAME); } - fd = open(dailyrp_file, O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); + fd = open(SF_DAILYREPORT_FILENAME, O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); if(fd) { - free(dailyrp_file); szTmpsize=SF_STRLEN(szTmp); //printf("szTmpsize=%d\n",szTmpsize); write(fd, szTmp, szTmpsize); @@ -1786,15 +1760,14 @@ BOOL sf_check_auto_thumb_file(VOID) fileCfg->filecnt = SendFileTotal; for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++) { - EmmcfileIndex--; - if((SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[EmmcfileIndex][0] - '0')) || (SF_CAM_MODE_VIDEO2 == (SendFileList[EmmcfileIndex][0] - '0'))){ + if((SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')) || (SF_CAM_MODE_VIDEO2 == (SendFileList[fileIndex][0] - '0'))){ fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO; - }else if(SF_CAM_MODE_PHOTO == (SendFileList[EmmcfileIndex][0] - '0')){ + }else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){ fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_SMALL; } - snprintf(fileCfg->stfileattr[fileIndex].thumbfileName, sizeof(fileCfg->stfileattr[fileIndex].thumbfileName), "%s", &SendFileList[EmmcfileIndex][1]); + snprintf(fileCfg->stfileattr[fileIndex].thumbfileName, sizeof(fileCfg->stfileattr[fileIndex].thumbfileName), "%s", &SendFileList[fileIndex][1]); snprintf(fileCfg->stfileattr[fileIndex].thumbfilePath, sizeof(fileCfg->stfileattr[fileIndex].thumbfilePath), "%s%s%s", SF_EMMC_ROOT, SF_SEND_LIST_DIR, - &SendFileList[EmmcfileIndex][1]); + &SendFileList[fileIndex][1]); printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__, fileCfg->stfileattr[fileIndex].thumbfileSize,fileCfg->stfileattr[fileIndex].thumbfileName,fileCfg->stfileattr[fileIndex].thumbfilePath); } diff --git a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c index 5bf8a731c..13e7a27a5 100755 --- a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c +++ b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c @@ -1242,6 +1242,21 @@ void sf_statistics_param_reset(SF_PDT_PARAM_STATISTICS_S *pSfPara) pSfPara->SmsFlag = 0; pSfPara->SmsNumber = 0; + pSfPara->TotalPicsSent = 0; + pSfPara->TotalPicsSuccess = 0; + pSfPara->TotalPicsFailed = 0; + pSfPara->TotalPicsTimeout = 0; + pSfPara->TotalTransmissionTime = 0; + pSfPara->ThumbnailTransmissionTime = 0; + pSfPara->ThumbnailPicsSent = 0; + pSfPara->ThumbnailPicsFailed = 0; + pSfPara->HDTransmissionTime = 0; + pSfPara->HDPicsSent = 0; + pSfPara->HDPicsFailed = 0; + pSfPara->VideoTransmissionTime = 0; + pSfPara->VideoSent = 0; + pSfPara->VideoFaild = 0; + memset(pSfPara->SmsStr, '\0', sizeof(pSfPara->SmsStr)); #ifdef SF_VERSION_RELEASE diff --git a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c index 642ca2bbe..17effaf85 100644 --- a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c @@ -951,7 +951,7 @@ int sf_app_sd_loop(void) } } - sprintf(cFileTmp,"%s%s/W%c%03d%04d.JPG", SF_EMMC_ROOT, SF_DCF_THM_DIR_NAME, SF_EMMC_DCF_HANDLE, nDirKey, nFileKey); + sprintf(cFileTmp,"%s%s/W%c%02d%04d.JPG", SF_EMMC_ROOT, SF_DCF_THM_DIR_NAME, SF_EMMC_DCF_HANDLE, nDirKey%100, nFileKey); //MLOGD("Thumb Filename:%s\n", cFileTmp); if(access(cFileTmp,R_OK) == 0) { @@ -959,7 +959,7 @@ int sf_app_sd_loop(void) remove(cFileTmp); } - sprintf(cFileTmp,"%s%s/S%c%03d%04d.JPG", SF_EMMC_ROOT, SF_DCF_THM_DIR_NAME, SF_EMMC_DCF_HANDLE, nDirKey, nFileKey); + sprintf(cFileTmp,"%s%s/S%c%02d%04d.JPG", SF_EMMC_ROOT, SF_DCF_THM_DIR_NAME, SF_EMMC_DCF_HANDLE, nDirKey%100, nFileKey); //MLOGD("Thumb Filename:%s\n", cFileTmp); if(access(cFileTmp,R_OK) == 0) { diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c index 758894718..58f9d8dee 100755 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c @@ -442,7 +442,7 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val) SF_PARA_TIME_S date = { 0 }; UINT8 PowerOnMode = sf_poweron_type_get(); SINT32 isUsb = sf_usb_IsInsert(); - SINT32 isCard = sf_in_card_exist(); + SINT32 isCard = 1;//sf_in_card_exist(); SINT32 isCardFull = sf_is_card_full(); //CameraBootSetting_t* pCameraBootSetting = CameraBootSettingGetHandle(); sf_set_sim_insert(1);//Remove hardware detection SIM card diff --git a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c index 93636a079..30564096b 100755 --- a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c +++ b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c @@ -1314,8 +1314,11 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen) strcpy((char *)fileName, (char *)pMsgStruct->msgBuf.getThumbList.fileName); if((pMsgStruct->msgBuf.getThumbList.diskType) && (Disk != pMsgStruct->msgBuf.getThumbList.diskType)) { + if(Disk) + { + memset(fileName,'\0', sizeof(fileName)); + } Disk = pMsgStruct->msgBuf.getThumbList.diskType; - memset(fileName,'\0', sizeof(fileName)); } MLOGI("[WIFI_GET_CAMERA_THUMB_LIST],fileName:%s diskType:%d\n",fileName,pMsgStruct->msgBuf.getThumbList.diskType); appCreatThumbList(fileName,pMsgStruct->msgBuf.getThumbList.diskType); diff --git a/code/hdal/ext_devices/sensor/sen_os05b10/sen_os05b10.c b/code/hdal/ext_devices/sensor/sen_os05b10/sen_os05b10.c index 4a7c59596..adc7a6409 100755 --- a/code/hdal/ext_devices/sensor/sen_os05b10/sen_os05b10.c +++ b/code/hdal/ext_devices/sensor/sen_os05b10/sen_os05b10.c @@ -102,6 +102,7 @@ static void sen_set_cur_fps_os05b10(CTL_SEN_ID id, UINT32 fps); static UINT32 sen_get_cur_fps_os05b10(CTL_SEN_ID id); static void sen_set_chgmode_fps_os05b10(CTL_SEN_ID id, UINT32 fps); static UINT32 sen_get_chgmode_fps_os05b10(CTL_SEN_ID id); +BOOL ae_preset_flag = FALSE; //sun chen@20240111 //============================================================================= // global variable //============================================================================= @@ -1472,8 +1473,16 @@ static ER sen_open_os05b10(CTL_SEN_ID id) #if defined(__KERNEL__) sen_i2c_reg_cb(sen_load_cfg_from_compatible_os05b10); #endif - +/*.............sun chen@20240111 start.................*/ +if (ae_preset_flag == FALSE){ preset_ctrl[id].mode = ISP_SENSOR_PRESET_DEFAULT; + ae_preset_flag = TRUE; +}else { + preset_ctrl[id].mode = ISP_SENSOR_PRESET_CHGMODE; + +} +/*.............sun chen@20240111 end.................*/ + i2c_valid[id] = TRUE; if ((!is_fastboot[id]) || (fastboot_i2c_id[id] != sen_i2c[id].id) || (fastboot_i2c_addr[id] != sen_i2c[id].addr)) { rt = sen_i2c_init_driver(id, &sen_i2c[id]); diff --git a/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_preview.c b/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_preview.c index bc027484e..039b9f734 100755 --- a/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_preview.c +++ b/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_preview.c @@ -1181,12 +1181,12 @@ static UINT32 ae_adc_tbl[57][3] = { {695, 333, 1000}, {694, 423, 1000}, {693, 539, 1000}, - {691, 964, 1000}, + {691, 806, 1000}, //sun chen@20240111 start {689, 1082, 1000}, - {687, 3606, 1000}, - {684, 4038, 1000},//8333, 2150}, - {681, 5755, 1000},//8333, 2550}, - {679, 6187, 1000}, + {687, 4038, 1000}, + {684, 5755, 1000},//8333, 2150}, + {681, 6187, 1000},//8333, 2550}, + {679, 8333, 1000},//sun chen@20240111 end {669, 8333, 1000}, {645, 8333, 1000}, {617, 8333, 1000}, @@ -1200,11 +1200,11 @@ static UINT32 ae_adc_tbl[57][3] = { {446, 16666, 2720}, {422, 16666, 2890}, {399, 16666, 3000}, - {376, 16666, 3000}, - {353, 16666, 3000}, - {330, 16666, 3000}, - {308, 16666, 3950},// 12190}, - {286, 16666, 4210},// 26600}, + {376, 16666, 2050}, + {353, 16666, 1130}, + {330, 16666, 1130}, + {308, 16666, 2050},// 12190}, + {286, 16666, 3000},// 26600}, {264, 16666, 4500}, //45770}, {242, 16666, 4740}, {220, 16666, 5100}, diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index 6b3ed7b68..61e3591f0 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -120,7 +120,7 @@ void sf_log_confgs(void) { #if (LOGFILE_FUNC==ENABLE) UIMenuStoreInfo *puiPara = sf_ui_para_get(); - if(puiPara->AutoLogSwitch) + if(puiPara->AutoLogSwitch && (!sf_is_usb_flag())) { DBG_WRN("SwTimer_Init\n"); SwTimer_Init(); // sw timer @@ -258,7 +258,7 @@ static void insmod_system(void) #endif } - + sf_log_confgs(); vos_perf_list_mark("b_sys", __LINE__, 1); } @@ -447,7 +447,7 @@ static void mcu_task(void) vos_util_delay_ms(5); sf_mcu_power_on_para_get(SF_MCU_POWERON); - sf_mcu_wdg_set(5); + //sf_mcu_wdg_set(5); sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1); //sf_battery_check_init(); sf_led_init(); diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index 6d277b0a8..ab0857fa7 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -27,7 +27,7 @@ #define MAX_OPENED_FILE_NUM 10 static THREAD_HANDLE task_hdl, task_hdl2; - +int FileInitFalg = 0; static void card_insert_job(void) { UINT32 uiPoolAddr; @@ -53,9 +53,16 @@ static void card_insert_job(void) strncpy(Param.FSParam.szMountPath, "/mnt/sd", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; - if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { - DBG_WRN("FileSys_Init failed\r\n"); - } + if(!FileInitFalg) + { + if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { + DBG_WRN("FileSys_Init failed\r\n"); + } + else { + FileInitFalg = 0; + } + } + ret = FileSys_OpenEx('A', StrgDXH, &Param); if (FST_STA_OK != ret) { DBG_WRN("FileSys_Open err %d\r\n", ret); @@ -67,17 +74,8 @@ static void card_insert_job(void) SF_RtosStrgRegister(0, ret); #endif #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE == sf_check_card_full()) - { - DBG_WRN("ERR card full\r\n"); - fastboot_set_done(BOOT_INIT_FILESYSOK); - } - else - { - fastboot_set_done(BOOT_INIT_FILESYSOK); - //sf_log_confg(); - //sf_log_open(); - } + sf_check_card_full(); + fastboot_set_done(BOOT_INIT_FILESYSOK); #endif printf("filesys_init e\r\n"); @@ -115,6 +113,15 @@ static void card_insert_job2(void) strncpy(Param.FSParam.szMountPath, "/mnt/sd2", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; + if(!FileInitFalg) + { + if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { + DBG_WRN("FileSys_Init failed\r\n"); + } + else { + FileInitFalg = 0; + } + } DBG_WRN("Open B:\n"); ret = FileSys_OpenEx('B', StrgDXH2, &Param); if (FST_STA_OK != ret) { diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c b/rtos/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c index 67714dc39..695f9adcf 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c @@ -45,6 +45,8 @@ static const INT32 EV_NUMERATOR[(EV_SETTING_MAX)] = { -20// }; +UINT32 jpgexifiso=0,jpgexifexp=0;//sun chen@20240111 + typedef struct { UINT32 MakerNoteCheckID; UINT16 TestData1; @@ -199,10 +201,10 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) UINT32 uiDzoomRatio[2] = {100, 100}; UINT16 uiSceneCaptureType = 0; UINT16 uiSharpness = 0; - UINT32 RecID; - HD_RESULT hd_ret; + //UINT32 RecID; + //HD_RESULT hd_ret; - RecID = HandleID;//ImageApp_MovieMulti_VePort2Imglink(HandleID); + //RecID = HandleID;//ImageApp_MovieMulti_VePort2Imglink(HandleID); //sprintf(UserComment, "EXIF_HDL_ID_%d", HandleID+1); snprintf(UserComment, sizeof(UserComment), "EXIF_HDL_ID_%d", HandleID + 1); @@ -270,12 +272,12 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) // } DBG_DUMP("uiPixelXDimension=%d, uiPixelYDimension=%d\r\n", uiPixelXDimension, uiPixelYDimension); - +/*.............sun chen@20240111 start.................*/ /************** AE info **************/ { UINT32 expo = 0; float fexpo; - AET_STATUS_INFO status = {0}; + //AET_STATUS_INFO status = {0}; #if 0//_TODO AE_GetExifInfo(0, &uiISOSpeed, &expo, &uiAperture[0], &MaxAperture[0]); #else @@ -284,6 +286,7 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) uiAperture[0] = 20; MaxAperture[0] = 20; #endif + /* status.id=RecID; if ((hd_ret = vendor_isp_init()) != HD_OK) { DBG_ERR("vendor_isp_init() failed(%d)\r\n", hd_ret); @@ -293,11 +296,11 @@ void ExifVendor_WriteExifIFD(EXIF_HANDLE_ID HandleID) } if ((hd_ret = vendor_isp_uninit()) != HD_OK) { DBG_ERR("vendor_isp_uninit() failed(%d)\r\n", hd_ret); - } - uiISOSpeed=status.status_info.iso_gain[0]; - expo=status.status_info.expotime[0]; - DBG_MSG("RecID=%d, uiISOSpeed=%d, expo=%d\r\n",RecID,uiISOSpeed,expo); - + }*/ + uiISOSpeed= jpgexifiso;//status.status_info.iso_gain[0]; + expo=jpgexifexp;//status.status_info.expotime[0]; + //DBG_MSG("RecID=%d, uiISOSpeed=%d, expo=%d\r\n",RecID,uiISOSpeed,expo); +/*.............sun chen@20240111 end.................*/ uiFNumber[0] = uiAperture[0]; uiAperture[0] = 20 * log2((float)uiAperture[0] / 10); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index cd9c1df6d..fdcdd46d3 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -326,7 +326,10 @@ static void MovieFast_ShutDown(void) } #endif //DBG_DUMP("wait filesys close ...\n"); - FileSys_Close(FST_TIME_INFINITE); + + //FileSys_Close(FST_TIME_INFINITE); + FileSys_CloseEx('A', FST_TIME_INFINITE); + FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE if(sf_get_power_off_flag()){ sf_mcu_reg_set(SF_MCU_POWEROFF,0); @@ -914,15 +917,22 @@ INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms) // DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); // return E_SYS; // } - INT32 ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + } + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms); // E_OK - if(ret == E_OK && ret2 == E_OK) + if(ret == E_OK || ret2 == E_OK) { return E_OK; } else { + fastboot_msg_en(ENABLE); DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); return E_SYS; } @@ -932,7 +942,6 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms) { DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); BOOT_INIT boot_init = BOOT_INIT_INVALID; - if(handle == g_dcf_hdl){ boot_init = BOOT_INIT_FILENAMINGOK; } @@ -943,7 +952,9 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms) #endif if(boot_init != BOOT_INIT_INVALID) + { return fastboot_wait_done_timeout(boot_init, timeout_ms); + } else{ DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); return E_SYS; @@ -1016,8 +1027,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) } } } - char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); + //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; + //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_AddDBfileEx(handle, pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName); @@ -1049,11 +1060,20 @@ static void MovieFast_Manual_Raw_Task(void* arg) HD_PATH_ID vprc_path = ImageApp_MovieMulti_GetVprcInPort(_CFG_REC_ID_1); HD_RESULT ret; HD_VIDEO_FRAME frame; - + VOS_TICK t1, t2; g_is_manual_raw_tsk_running = TRUE; + vos_perf_mark(&t1); while(g_manual_raw_tsk_running) { + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("failed timeout\n"); + break; + } + ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS); if(ret != HD_OK){ DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret); @@ -1074,9 +1094,17 @@ static void MovieFast_Manual_Raw_Task(void* arg) continue; } } + vos_perf_mark(&t1); while(1) { + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (30*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("failed timeout\n"); + break; + } ret = hd_videocap_pull_out_buf(vcap_path, &frame, PHOTOFAST_HD_PUSH_PULL_TIMEOUT_MS); if(ret != HD_OK){ DBG_ERR("hd_videocap_pull_out_buf failed!(%d)\n", ret); @@ -1285,6 +1313,8 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 MovieFast_FileNamingCB(id, pFileName); } else{ + fastboot_msg_en(ENABLE); + DBG_ERR(" MovieFast_Wait_FileNaming err TIMEOUT\n"); vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); } } @@ -1311,7 +1341,7 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr return E_OK; } -static void MovieFast_FileNaming_Init(void) +static void MovieFast_FileNaming_Init(MMC_DEV_TYPE dev_type) { static UINT8 is_init = 0; @@ -1343,7 +1373,7 @@ static void MovieFast_FileNaming_Init(void) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetDirFreeChars(DCF_DIR_NAME); - //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME)); } THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) @@ -1355,40 +1385,57 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) .WorkbuffAddr = mempool_dcf, .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; + DCF_OPEN_PARM dcfParm2 = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; - //fastboot_wait_done(BOOT_INIT_FILESYSOK); - if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + } + + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + + if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK)) + { + MovieFast_FileNaming_Init(MMC_DEV_EMMC); + if(g_dcf_hdl2 == -1){ + g_dcf_hdl2 = DCF_Open(&dcfParm2); + DCF_ScanObjEx(g_dcf_hdl2); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + } + else if((TRUE != sf_is_card_full()) && (ret == E_OK)) + { + MovieFast_FileNaming_Init(MMC_DEV_SD); + if(g_dcf_hdl == -1){ + g_dcf_hdl = DCF_Open(&dcfParm); + DCF_ScanObjEx(g_dcf_hdl); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK); + } + else { fastboot_msg_en(ENABLE); DBG_ERR(" FILESYS TIMEOUT failed\r\n"); - THREAD_RETURN(1); } - MovieFast_FileNaming_Init(); - - if(g_dcf_hdl == -1){ - g_dcf_hdl = DCF_Open(&dcfParm); - DCF_ScanObjEx(g_dcf_hdl); - } - else{ - DBG_WRN("dcf handle1 is already opened\n"); - } - - #if HUNTING_CAMERA_MCU == ENABLE - if(TRUE != sf_is_card_full()) - #endif - { -#if USE_RTOS_MMC_CHECK - //SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl); -#endif - fastboot_set_done(BOOT_INIT_FILENAMINGOK); - } - } - + } THREAD_RETURN(0); } THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) { + #if 0 if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ #if (FS_MULTI_STRG_FUNC) @@ -1404,7 +1451,11 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) { fastboot_msg_en(ENABLE); DBG_ERR(" BOOT_INIT_FILESYSOK_2 TIMEOUT failed\r\n"); - THREAD_RETURN(1); + if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + { + DBG_ERR(" BOOT_INIT_FILESYSOK_2 TIMEOUT failed 2\r\n"); + } + //THREAD_RETURN(1); } MovieFast_FileNaming_Init(); @@ -1432,7 +1483,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) } #endif } - + #endif THREAD_RETURN(0); } @@ -1465,18 +1516,21 @@ static void MovieFast_Load_Sen_Cfg(MOVIEFAST_IQ_CFG cfg) System_GetSensorInfo(i, SENSOR_IQ_SHADING_PATH, &(sen_cfg.iq_shading_path)); System_GetSensorInfo(i, SENSOR_IQ_DPC_PATH, &(sen_cfg.iq_dpc_path)); System_GetSensorInfo(i, SENSOR_IQ_LDC_PATH, &(sen_cfg.iq_ldc_path)); - +/*.............sun chen@20240111 start.................*/ if(cfg == MOVIEFAST_IQ_VIDEO){ - strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_vid", size); - } - else{ /* MOVIEFAST_IQ_PHOTO */ - - if(sf_is_night_mode(0) ==TRUE) - strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0", size); + if(sf_is_night_mode(1) ==TRUE) + strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_vid", size); else strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_cap", size); } + else{ /* MOVIEFAST_IQ_PHOTO */ + if(sf_is_night_mode(1) ==TRUE) + strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_vid", size); + else + strncpy(pSenCfg->iq_path.path, "/isp/iq/os05b10_iq_0_cap", size); + } +/*.............sun chen@20240111 end.................*/ ImageApp_MovieMulti_Config(MOVIE_CONFIG_SENSOR_INFO, (UINT32)&sen_cfg); } } @@ -1608,7 +1662,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) // UINT32 rec_type = MovieMapping_GetRecType(UI_GetData(FL_MOVIE_SIZE)); Movie_CommPoolInit(); - + /*.............sun chen@20240111 start.................*/ +/* if(DrvGPIO_GetPhotoMovieModeFromMonitor() == DX_HUNTING_MODE_MOVIE2){ //UI_SetData(FL_MOVIE_SIZE, MOVIE_SIZE_CLONE_1920x1080P30_1280x720P30); @@ -1619,7 +1674,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) Set_NIGHTMODE(0, 1); //Set_AEMODE(0); } - +*/ +/*.............sun chen@20240111 end.................*/ MovieFast_SetRecInfoByUISetting(); #if (_PACKAGE_DISPLAY_) @@ -1814,8 +1870,33 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) } MovieFast_InstallID(); +DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); +// nvt_cmdsys_runcmd("ae set_speed 0 128 700 400 200 "); // dgain mode /dgain th/down speed/up speed1/up speed2 + /*.............sun chen@20240111 end.................*/ + + { + AET_EXTEND_PARAM ext_param = {0}; + ext_param.id = 0; + ext_param.ext_param.dgain_th = 128; + ext_param.ext_param.dgain_mode = 0; + ext_param.ext_param.down_speed = 970; + ext_param.ext_param.up_speed1 = 965; + ext_param.ext_param.up_speed2 = 800; + ext_param.ext_param.hdr_ev = 0; + ext_param.ext_param.fast_ae = 1; + vendor_isp_set_ae(AET_ITEM_EXT_PARAM, &ext_param); + } + { + AET_CONVERGENCE convergence = {0}; + convergence.id = 0; + vendor_isp_get_ae(AET_ITEM_CONVERGENCE, &convergence); + // DBG_DUMP("==============to : %d %d \r\n", convergence.convergence.range_conv.h, convergence.convergence.range_conv.l); + convergence.convergence.skip_frame = 3; + vendor_isp_set_ae(AET_ITEM_CONVERGENCE, &convergence); + } + /*.............sun chen@20240111 end.................*/ + - nvt_cmdsys_runcmd("ae set_speed 0 128 700 700 100 "); //nvt_cmdsys_runcmd("ae dbg 0 256 1 "); HD_VIDEO_FRAME frame_capture = {0}; @@ -1849,7 +1930,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) vprc_frm_cnt_ae_preset = vprc_frm_cnt; DBG_DUMP("ae preset vprc frame cnt = %lu\n", vprc_frm_cnt_ae_preset); Set_AEMODE(0); - //setet_preset_param(); + //Set_NIGHTMODE(0, 0); + setet_preset_param(); //sun chen@20240111 } } @@ -1878,14 +1960,22 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) DBG_DUMP("count = %llu, timestamp = %llu\n", frame.count, frame.timestamp); + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("failed timeout\n"); + goto EXIT; + } + if( vcap_frm_cnt >= PHOTOFAST_START_CAP_FRAME_CNT || - (ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 3))){ + (ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 5))){ if(vcap_frm_cnt >= PHOTOFAST_START_CAP_FRAME_CNT){ DBG_DUMP("triggered by PHOTOFAST_START_CAP_FRAME_CNT\n"); } - else if(ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 3)){ + else if(ae_preset_flag == TRUE && vprc_frm_cnt >= (vprc_frm_cnt_ae_preset + 5)){ DBG_DUMP("triggered by AE preset\n"); } @@ -1898,13 +1988,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) hd_videoproc_release_out_buf(alg_path, &frame); } - vos_perf_mark(&t2); - if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) - { - fastboot_msg_en(ENABLE); - DBG_ERR("failed timeout\n"); - goto EXIT; - } } while(1); vos_perf_mark(&g_alg_end_time); @@ -1929,8 +2012,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) vos_task_resume(g_moviefast_raw_tsk_id); } - vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART); - vos_perf_mark(&t1); #if 1 @@ -1942,7 +2023,15 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) UINT32 yuv_size = 0; HD_PATH_ID alg_path = ImageApp_MovieMulti_GetAlgDataPort(_CFG_REC_ID_1, _CFG_ALG_PATH3); UINT32 max_cnt , duration; - + vos_perf_mark(&t2); + #if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UINT32 led_delay = 170; + BOOL led_flag = FALSE; + BOOL ViewPullFlag = TRUE; + UINT32 period = 0; + VOS_TICK t3, t4; + #endif MovieFast_fdt_get_info(&fdt_info); if(MovieFast_fdt_get_tmp_buf(&fdt_info, &tmp_buf, &tmp_buf_size) != E_OK){ @@ -1958,6 +2047,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) yuv_size = VDO_YUV_BUFSIZE(sensor_info->sSize.w, sensor_info->sSize.h , HD_VIDEO_PXLFMT_YUV420); do { + vos_perf_mark(&t3); + if((tmp_buf + yuv_size) > (tmp_buf + tmp_buf_size)){ DBG_ERR("tmp buffer overflow!!\n"); goto EXIT; @@ -1980,7 +2071,15 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) tmp_buf += yuv_size; hd_videoproc_release_out_buf(alg_path, &frame_capture); + #if HUNTING_CAMERA_MCU == ENABLE sf_set_date_time_make_ymdhms(); + + led_flag = FALSE; + ViewPullFlag = TRUE; + if((SF_MULTISHOT_INTEVEL_0S != puiPara->MultiShotIntevel) && (sf_is_night_mode(0) ==TRUE)){ + sf_ir_led_set(0, 0, 0, 0); + } + #endif if(++cnt >= max_cnt) break; vos_perf_mark(&t2); @@ -1990,20 +2089,69 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) DBG_ERR("failed timeout\n"); goto EXIT; } - vos_util_delay_ms(duration); - } while(1); +#if HUNTING_CAMERA_MCU == ENABLE + while(ViewPullFlag) { + + if(TRUE == flow_preview_get_stop_flag()){ + DBG_WRN("detected stop signal, power off ...\n"); + goto EXIT; + } + vos_perf_mark(&t4); + + period = vos_perf_duration(t3, t4) / 1000; + + /************************************************** + * IR LED , 60 fps, 16.66 = 17 + **************************************************/ + + if((period >= duration) ||((duration - period) <= (led_delay + 17)) + ){ + if((SF_MULTISHOT_INTEVEL_0S != puiPara->MultiShotIntevel) && (FALSE == led_flag) && (sf_is_night_mode(0) ==TRUE)){ + led_flag = TRUE; + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0); + } + + } + + if(period >= (duration - 17)) + { + ViewPullFlag = FALSE; + break; + } + else + { + vos_util_delay_ms(5); + continue; + } + } +#endif + + } while(TRUE != flow_preview_get_stop_flag()); #endif vos_perf_mark(&t2); + #if HUNTING_CAMERA_MCU == ENABLE + if(sf_is_night_mode(0) ==TRUE) + { + if((SF_MULTISHOT_INTEVEL_0S == puiPara->MultiShotIntevel)){ + sf_ir_led_set(0, 0, 0, 0); + } + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode, 1); + } + #endif + vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART); + + Set_AEMODE(0); //sun chen@20240111 #if FIX_RECORD_NOISE == ENABLE - UINT32 elapse_time_ms = ((t2 - t1) / 1000); + // UINT32 elapse_time_ms = ((t2 - t1) / 1000); CHKPNT; - if(elapse_time_ms < 300) - vos_util_delay_ms(300 - elapse_time_ms); + vos_util_delay_ms(300); + // if(elapse_time_ms < 300) + // vos_util_delay_ms(300 - elapse_time_ms); ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, FALSE); #endif @@ -2119,13 +2267,13 @@ static void MovieFast_Close(void) break; } else{ - vos_util_delay_ms(1); + vos_util_delay_ms(5); } vos_perf_mark(&t2); if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) { fastboot_msg_en(ENABLE); - DBG_ERR("failed timeout\n"); + DBG_ERR("failed es timeout\n"); goto EXIT; } } @@ -2142,10 +2290,15 @@ static void MovieFast_Close(void) EXIT: - DCF_Close(g_dcf_hdl); - + if(g_dcf_hdl >= 0){ + DCF_Close(g_dcf_hdl); + g_dcf_hdl = -1; + } #if (FS_MULTI_STRG_FUNC) - DCF_Close(g_dcf_hdl2); + if(g_dcf_hdl2 >= 0){ + DCF_Close(g_dcf_hdl2); + g_dcf_hdl2 = -1; + } #endif DCF_UnInstallID(); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c index dc8c8a853..77fcb0793 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieStamp/MovieStamp.c @@ -1271,6 +1271,7 @@ void MovieStamp_CombineStamp(UINT32 vid_in, UINT32 bg_color) HD_VIDEO_FRAME Img = {0}; UINT32 lineoff[HD_VIDEO_MAX_PLANE] = {0}; UINT32 addr[HD_VIDEO_MAX_PLANE] = {0}; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); char name[16]; INT16 cTemper = 0; @@ -1413,6 +1414,15 @@ void MovieStamp_CombineStamp(UINT32 vid_in, UINT32 bg_color) padding, &x_curr_ofs); + //camid stamp + if((puiPara->CamNameSwitch == SF_CAMID_ON) && (puiPara->CamNameStr[0] != '\0')) + { + snprintf((char *)customString, sizeof(customString), "%s", puiPara->CamNameStr); + DBG_IND("[%s:%d]customString=%s\n", __FUNCTION__, __LINE__, customString); + //sprintf(customString, "Cam1"); + MovieStamp_AttachString(combined_stamp_h, &Img, customString, font, false, padding, &x_curr_ofs); + } + /*printf("[%s:%d]moon id=%d,battery id=%d\n", __FUNCTION__, __LINE__, (LV_PLUGIN_IMG_ID_ICON_10200_MOON + moonday), (LV_PLUGIN_IMG_ID_ICON_10230_BATTERT + batValue));*/ diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 0e7dc3703..c4f54d3df 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -41,8 +41,9 @@ #if HUNTING_CAMERA_MCU == ENABLE #include #include "sf_led.h" -#endif +#include "IOCfg.h" #include "sf_sd_common.h" +#endif #if POWERON_FAST_SLICE_ENC == ENABLE @@ -715,7 +716,7 @@ HD_RESULT PhotoFast_get_hd_common_buf(PPHOTOFAST_HD_COM_BUF p_hd_comm_buf) return HD_OK; } -static void PhotoFast_FileNaming_Init(void) +static void PhotoFast_FileNaming_Init(MMC_DEV_TYPE dev_type) { static UINT8 is_init = 0; @@ -730,7 +731,7 @@ static void PhotoFast_FileNaming_Init(void) DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetDirFreeChars(DCF_DIR_NAME); - //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME)); } INT32 PhotoFast_FileNaming_Open(void) @@ -741,7 +742,7 @@ INT32 PhotoFast_FileNaming_Open(void) .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; - PhotoFast_FileNaming_Init(); + PhotoFast_FileNaming_Init(MMC_DEV_SD); if(g_dcf_hdl == -1){ g_dcf_hdl = DCF_Open(&dcfParm); @@ -771,7 +772,7 @@ INT32 PhotoFast_FileNaming_Open2(void) .WorkbuffSize = POOL_SIZE_DCF_BUFFER, }; - PhotoFast_FileNaming_Init(); + PhotoFast_FileNaming_Init(MMC_DEV_EMMC); if(g_dcf_hdl2 == -1){ g_dcf_hdl2 = DCF_Open(&dcfParm); @@ -980,11 +981,16 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) // boot_init = BOOT_INIT_FILESYSOK_2; // } // #endif - INT32 ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + } INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms); // E_OK - if(ret == E_OK && ret2 == E_OK) + if(ret == E_OK || ret2 == E_OK) { return E_OK; } @@ -1085,8 +1091,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, } } } - char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); + //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; + //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath); DCF_AddDBfileEx(handle, FilePath); DBG_DUMP("%s added to DCF\r\n", FilePath); @@ -1592,20 +1598,64 @@ static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame) THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) { + DCF_OPEN_PARM dcfParm = { + .Drive = 'A', + .WorkbuffAddr = mempool_dcf, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; + DCF_OPEN_PARM dcfParm2 = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; - fastboot_wait_done(BOOT_INIT_FILESYSOK); - PhotoFast_FileNaming_Open(); - fastboot_set_done(BOOT_INIT_FILENAMINGOK); + INT32 ret = E_SYS; + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + } + + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); + + if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK)) + { + PhotoFast_FileNaming_Init(MMC_DEV_EMMC); + if(g_dcf_hdl2 == -1){ + g_dcf_hdl2 = DCF_Open(&dcfParm2); + DCF_ScanObjEx(g_dcf_hdl2); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + } + else if((TRUE != sf_is_card_full()) && (ret == E_OK)) + { + PhotoFast_FileNaming_Init(MMC_DEV_SD); + if(g_dcf_hdl == -1){ + g_dcf_hdl = DCF_Open(&dcfParm); + DCF_ScanObjEx(g_dcf_hdl); + } + else{ + DBG_WRN("dcf handle1 is already opened\n"); + } + fastboot_set_done(BOOT_INIT_FILENAMINGOK); + } + else + { + fastboot_msg_en(ENABLE); + DBG_ERR(" FILESYS TIMEOUT failed\r\n"); + } THREAD_RETURN(0); } THREAD_RETTYPE PhotoFast_InitFileNamingThread2(void *arg) { - fastboot_wait_done(BOOT_INIT_FILESYSOK_2); - PhotoFast_FileNaming_Open2(); - fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); + // fastboot_wait_done(BOOT_INIT_FILESYSOK_2); + // PhotoFast_FileNaming_Open2(); + // fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); THREAD_RETURN(0); } @@ -2210,7 +2260,9 @@ static void PhotoFast_ShutDown(void) LogFile_Close(); } #endif - FileSys_Close(FST_TIME_INFINITE); + // FileSys_Close(FST_TIME_INFINITE); + FileSys_CloseEx('A', FST_TIME_INFINITE); + FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE if(sf_get_power_off_flag()){ sf_mcu_reg_set(SF_MCU_POWEROFF,0); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c index bab68c573..6fa6f8dff 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -1924,6 +1924,7 @@ static lfqueue_t queue23 = {0}; INT32 PhotoFast_Sliceencode2_Enq_Frame(const HD_VIDEO_FRAME* video_frame) { + static int cnt = 0; if(lfqueue_size(&queue12) >= PHOTOFAST_SLICE_ENC_QUEUE12_MAX_SIZE){ return E_SYS; } @@ -1935,6 +1936,12 @@ INT32 PhotoFast_Sliceencode2_Enq_Frame(const HD_VIDEO_FRAME* video_frame) while (lfqueue_enq(&queue12, (void*) queue_ele_out) == -1) { + cnt++; + if(cnt > 3) + { + fastboot_msg_en(ENABLE); + DBG_ERR("cnt%d timeout\n",cnt); + } vos_util_delay_ms(1); DBG_ERR("ENQ Full ?\r\n"); } @@ -1944,6 +1951,7 @@ INT32 PhotoFast_Sliceencode2_Enq_Frame(const HD_VIDEO_FRAME* video_frame) INT32 PhotoFast_Sliceencode2_Stop(void) { + static int cnt = 0; PhotoFast_SliceEncode_Queue12_Param* queue_ele_out = NULL; queue_ele_out = (PhotoFast_SliceEncode_Queue12_Param*) malloc(sizeof(PhotoFast_SliceEncode_Queue12_Param)); memset(queue_ele_out, 0, sizeof(PhotoFast_SliceEncode_Queue12_Param)); @@ -1951,6 +1959,12 @@ INT32 PhotoFast_Sliceencode2_Stop(void) while (lfqueue_enq(&queue12, (void*) queue_ele_out) == -1) { + cnt++; + if(cnt > 3) + { + fastboot_msg_en(ENABLE); + DBG_ERR("cnt%d timeout\n",cnt); + } vos_util_delay_ms(1); DBG_ERR("ENQ Full ?\r\n"); } @@ -1978,6 +1992,7 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) UINT32 enc_accum_size = 0; static UINT8 primary_quality = CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_PRIMARY; static UINT8 screennail_quality = CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL; + VOS_TICK t1, t2; if(!user_data){ DBG_ERR("user_data can't be null!\n"); @@ -2033,9 +2048,18 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) exif_mem_info.blk_size = CFG_JPG_HEADER_SIZE; if(PhotoFast_SliceEncode_Alloc_Buffer(&exif_mem_info, "slice_enc_exif") != E_OK) goto EXIT; + + vos_perf_mark(&t1); do{ + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (30*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("sfailed timeout\n"); + goto EXIT; + } queue_ele_in = (PhotoFast_SliceEncode_Queue12_Param*)lfqueue_deq(param->queue12); if(queue_ele_in == NULL){ vos_util_delay_ms(1); @@ -2214,9 +2238,16 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) DCF_AddDBfile(queue_ele_out->file_path); DBG_DUMP("%s added to DCF\r\n", queue_ele_out->file_path); #endif - + vos_perf_mark(&t1); while(1) { + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("2failed timeout\n"); + goto EXIT; + } if(lfqueue_size(param->queue23) >= PHOTOFAST_SLICE_ENC_QUEUE23_MAX_SIZE){ vos_util_delay_ms(1); continue; @@ -2224,6 +2255,13 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) else{ while (lfqueue_enq(param->queue23, (void*) queue_ele_out) == -1) { + vos_perf_mark(&t2); + if((vos_perf_duration(t1, t2) / 1000) > (20*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("23failed timeout\n"); + goto EXIT; + } DBG_ERR("ENQ Full ?\r\n"); vos_util_delay_ms(5); } @@ -2291,6 +2329,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) PhotoFast_SliceEncode_CB3_Param* param = NULL; PhotoFast_SliceEncode_Queue23_Param* queue_ele_in = NULL; VOS_TICK t1, t2, t3, t4; + VOS_TICK t5, t6; if(!user_data){ DBG_ERR("user_data can't be null!\n"); @@ -2301,8 +2340,16 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) param = (PhotoFast_SliceEncode_CB3_Param*) user_data; param->cnt = 0; - do{ + vos_perf_mark(&t5); + do{ + vos_perf_mark(&t6); + if((vos_perf_duration(t5, t6) / 1000) > (30*1000)) + { + fastboot_msg_en(ENABLE); + DBG_ERR("erfailed timeout\n"); + goto EXIT; + } queue_ele_in = (PhotoFast_SliceEncode_Queue23_Param*)lfqueue_deq(param->queue23); if(queue_ele_in == NULL){ vos_util_delay_ms(1); @@ -2320,19 +2367,10 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) * Output jpg file ******************************************************************/ extern INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path); - INT32 waitFalg = 0; #if SF_NO_SD_SEND == ENABLE - // if( - // PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && - // PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) - - if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ - if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ - waitFalg = 1; - } - } - - if(waitFalg) + if( + PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && + PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) { DBG_WRN("filesys not ready, store data into mem\n"); diff --git a/rtos/code/driver/na51089/source/mcu/sf_mcu.c b/rtos/code/driver/na51089/source/mcu/sf_mcu.c index 572d9177e..299dc350b 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_mcu.c +++ b/rtos/code/driver/na51089/source/mcu/sf_mcu.c @@ -1422,7 +1422,7 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) if(attrId != SF_MCU_CTRL_MODULE_PIR)//AND LDS SECTION_01 loading order. { isUsb = sf_is_usb_flag(); - isCard = sf_in_card_exist(); + isCard = 1;//sf_in_card_exist(); isCardFull = sf_is_card_full(); PowerOnMode = sf_get_power_on_mode(); if(APP_POWER_OFF_BATT_EMPTY == sf_get_power_off_flag()) @@ -1769,6 +1769,10 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) mcuReg[i] = DAILY_SEND4_MINUTE; mcuData[i++] = puiPara->TimeSend4.Min; }else if(attrId == SF_MCU_CTRL_MODULE_PIR){ + + mcuReg[i] = WDT_TIME; + mcuData[i++] = 5;//sf_mcu_wdg_set(5); + mcuReg[i] = ANALOG_PIR_SENSITIVITY; temp = (puiPara->PirSensitivity);//sf_mcu_analog_pir_sen_convert(SysGetFlag(DigPirSensitivity)); diff --git a/rtos/code/hdal/vendor/isp/drivers/include/ae_alg.h b/rtos/code/hdal/vendor/isp/drivers/include/ae_alg.h index 027594c61..30884e7c2 100755 --- a/rtos/code/hdal/vendor/isp/drivers/include/ae_alg.h +++ b/rtos/code/hdal/vendor/isp/drivers/include/ae_alg.h @@ -234,8 +234,8 @@ typedef struct _AE_EXTEND_PARAM { UINT32 down_speed; UINT32 up_speed1; UINT32 up_speed2; - UINT32 reserved2; - UINT32 reserved3; + UINT32 hdr_ev; + BOOL fast_ae; UINT32 reserved4[AEALG_DYNAMIC_LV_NUM]; UINT32 reserved5[AEALG_DYNAMIC_LV_NUM]; UINT32 reserved6[AEALG_DYNAMIC_LV_NUM]; diff --git a/rtos/code/hdal/vendor/isp/drivers/output/libnvt_ae.a b/rtos/code/hdal/vendor/isp/drivers/output/libnvt_ae.a index 494dc1b9c..e766c7ce4 100644 Binary files a/rtos/code/hdal/vendor/isp/drivers/output/libnvt_ae.a and b/rtos/code/hdal/vendor/isp/drivers/output/libnvt_ae.a differ