diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index e1009326c..9e3496139 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -920,7 +920,8 @@ #define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 DISABLE -#define SF_BASE_VERSION "7MD4RCwD6T9" +#define SF_EXIF_MN_BUF_SIZE 256 +#define SF_BASE_VERSION "7MD4RCwD6TB" #define HW_S530 1 #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */ @@ -966,6 +967,7 @@ #define SF_MODULE_UP_FILE_PATH "/mnt/sd/EG915QNA.tar.bz2" #define SF_CAM_UP_FILE "S530.tar.bz2" #define SF_CAM_UP_FILE_PATH "/mnt/sd/S530.tar.bz2" +#define SF_CAMERA_GPS_INFO_FILENAME SF_SD_ROOT"/gps.txt" //////////////////////sf end/////////////////////////////// /******************************************************************************************* diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c index 0149ffbd2..d9f9976ef 100755 --- a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c @@ -155,24 +155,7 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) INIT_SETFLAG(FLGINIT_MOUNTFS); #endif Ux_PostEvent(NVTEVT_STRG_ATTACH, 2, param1, status); - #if HUNTING_CAMERA_MCU == ENABLE - INT32 uiStatus = 0; - UINT8 ucAttrib = 0; - uiStatus = FileSys_GetAttrib(PHOTO_THUMB_PATH, &ucAttrib); - if (uiStatus == FST_STA_OK) { - if(!(ucAttrib&FST_ATTRIB_HIDDEN)){ - #if SF_IQ_TEST != ENABLE - FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); - #endif - } - } - else { - FileSys_MakeDir(PHOTO_THUMB_PATH); - #if SF_IQ_TEST != ENABLE - FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); - #endif - } - #endif + break; default: @@ -181,7 +164,7 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) } #if HUNTING_CAMERA_MCU == ENABLE - if((CMD_FORMAT_SD_STA != sf_get_card_statu())){ + if((FST_STA_OK != param2) && (CMD_FORMAT_SD_STA != sf_get_card_statu())){ stMessageBuf.arg1 = event; stMessageBuf.arg2 = param1; stMessageBuf.arg3 = param2; diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index cda03dbe5..e0a43dd52 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -71,7 +71,11 @@ #include #include #include "emmc.h" - +#if HUNTING_CAMERA_MCU == ENABLE +#include +#include +#include "sf_sd_common.h" +#endif #if (LOGFILE_FUNC==ENABLE) #include "LogFile.h" #endif @@ -793,7 +797,10 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) unsigned int *p_data; #endif UINT32 result = paramArray[1]; + #if HUNTING_CAMERA_MCU == ENABLE + SF_MESSAGE_BUF_S stMessageBuf = {0}; + #endif #if defined(__FREERTOS) if (p_fdt== NULL) { DBG_ERR("p_fdt is NULL.\n"); @@ -855,6 +862,34 @@ INT32 System_OnStrgAttach(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) //FileSys_GetDiskInfo(FST_INFO_DISK_SIZE); System_SetState(SYS_STATE_FS, FS_INIT_OK); + #if HUNTING_CAMERA_MCU == ENABLE + INT32 uiStatus = 0; + UINT8 ucAttrib = 0; + uiStatus = FileSys_GetAttrib(PHOTO_THUMB_PATH, &ucAttrib); + if (uiStatus == FST_STA_OK) { + if(!(ucAttrib&FST_ATTRIB_HIDDEN)){ + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + } + else { + FileSys_MakeDir(PHOTO_THUMB_PATH); + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + #if HUNTING_CAMERA_MCU == ENABLE + + if((CMD_FORMAT_SD_STA != sf_get_card_statu())){ + stMessageBuf.arg1 = STRG_CB_MOUNT_FINISH; + stMessageBuf.arg2 = result; + stMessageBuf.arg3 = FST_STA_OK; + stMessageBuf.cmdId = CMD_SD; + sf_com_message_send_to_app(&stMessageBuf); + } +#endif + #endif #if defined(__FREERTOS) if (p_shm && p_shm->boot.LdCtrl2 & LDCF_UPDATE_FW) { FST_FILE hFile = FileSys_OpenFile(FW_DEL_INDIACTION_PATH, FST_OPEN_READ | FST_OPEN_EXISTING); diff --git a/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c b/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c index 7174cd79b..7c7310ed5 100755 --- a/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c +++ b/code/application/source/cardv/SrcCode/UIApp/ExifVendor.c @@ -49,6 +49,7 @@ typedef struct { UINT32 MakerNoteCheckID; UINT16 TestData1; UINT16 TestData2; + char ExifBuf[SF_EXIF_MN_BUF_SIZE]; //Please reserve two word space to let capture flow save the screennail info. UINT32 ScreennailOffset; UINT32 ScreennailSize; @@ -67,6 +68,7 @@ ER ExifCB(EXIF_EVENT event, PMEM_RANGE pBuffer, UINT32 uiRetParamNum, UINT32 *pP MakerNoteSample.TestData1 = (UINT16)QUALITY_FINE; #endif MakerNoteSample.TestData2 = 0xA5A5; + //PhotoStamp_get_isp_status(0,&MakerNoteSample.ExifBuf[0],SF_EXIF_MN_BUF_SIZE); memcpy((void *)pBuffer->addr, (void *) &MakerNoteSample, sizeof(MakerNoteSample)); pBuffer->size = sizeof(MakerNoteSample); } else if (PARSE_MAKERNOTE == event) { diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c old mode 100644 new mode 100755 index b48e9d09c..b47dd4092 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -145,6 +145,100 @@ static void xUSBMakerInit_UVAC(UVAC_VEND_DEV_DESC *pUVACDevDesc) extern void GOIO_Turn_Onoff_IRCUT(UINT8 onoff); extern void GPIO_IRLed_Turn_Onoff(BOOL onoff); +/* +INT32 Set_Manual_AE(BOOL OnOff, UINT8 isSnapVideo)) +{ + static AET_STATUS_INFO ae_status_info = {0}; + AET_MANUAL ae_manual = {0}; + + HD_RESULT hd_ret; + +#if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); +#endif + + if ((hd_ret = vendor_isp_init()) != HD_OK) { + DBG_ERR("vendor_isp_init() fail(%d)\r\n", hd_ret); + } + ae_status_info.id = 0; + ae_manual.id = 0; + + vendor_isp_get_ae(AET_ITEM_STATUS, &ae_status_info); + //DBG_ERR(">> aet status lv %d lv_base %d\r\n",ae_status_info.status_info.lv,ae_status_info.status_info.lv_base); + //DBG_ERR(">> aet status ev %d ev_base %d\r\n",ae_status_info.status_info.ev,ae_status_info.status_info.ev_base); + + vendor_isp_get_ae(AET_ITEM_MANUAL, &ae_manual); + if (((ae_status_info.status_info.lv / 1000000) < 7)&&(OnOff)) + { +#if HUNTING_CAMERA_MCU == ENABLE + sf_set_ae_night_mode(1); + sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,isSnapVideo); + + 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]; + } +#endif + } + else + { + + ae_manual.manual.mode = 0; + +#if HUNTING_CAMERA_MCU == ENABLE + sf_set_ae_night_mode(0); + sf_ir_led_set(0, 0, 0, 0); +#endif + } + + 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); + } + + return 0; +} +*/ + void Set_AE_Speed(void) + { + AET_EXTEND_PARAM ext_param = {0}; + + HD_RESULT hd_ret; + + + if ((hd_ret = vendor_isp_init()) != HD_OK) { + DBG_ERR("vendor_isp_init() fail(%d)\r\n", hd_ret); + } + ext_param.id = 0; + + vendor_isp_get_ae(AET_ITEM_EXT_PARAM, &ext_param); + + ext_param.ext_param.dgain_th = 128; + + ext_param.ext_param.dgain_mode = 0; + + ext_param.ext_param.down_speed = 700; + + ext_param.ext_param.up_speed1 = 700; + ext_param.ext_param.up_speed2 = 100; + + vendor_isp_set_ae(AET_ITEM_EXT_PARAM, &ext_param); + + if ((hd_ret = vendor_isp_uninit()) != HD_OK) { + DBG_ERR("vendor_isp_uninit() fail(%d)\r\n", hd_ret); + } + } + INT32 Set_Cur_Day_Night_Status_cmd(BOOL OnOff) { @@ -215,8 +309,6 @@ INT32 Set_Cur_Day_Night_Status(BOOL OnOff, UINT8 isSnapVideo) vendor_isp_get_ae(AET_ITEM_STATUS, &ae_status_info); //DBG_ERR(">> aet status lv %d lv_base %d\r\n",ae_status_info.status_info.lv,ae_status_info.status_info.lv_base); //DBG_ERR(">> aet status ev %d ev_base %d\r\n",ae_status_info.status_info.ev,ae_status_info.status_info.ev_base); - ae_manual.id = 0; - vendor_isp_get_ae(AET_ITEM_MANUAL, &ae_manual); if (((ae_status_info.status_info.lv / 1000000) < 7)&&(OnOff)) { @@ -231,29 +323,12 @@ INT32 Set_Cur_Day_Night_Status(BOOL OnOff, UINT8 isSnapVideo) #if HUNTING_CAMERA_MCU == ENABLE sf_set_ae_night_mode(1); sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,isSnapVideo); - if (OnOff){ - vos_util_delay_ms(330); - } - 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]; - } #endif } else { night_mode.mode = 0; awb_manual.manual.en = 0; - ae_manual.manual.mode = 0; GOIO_Turn_Onoff_IRCUT(1); //GPIO_IRLed_Turn_Onoff(0); #if HUNTING_CAMERA_MCU == ENABLE @@ -263,13 +338,43 @@ INT32 Set_Cur_Day_Night_Status(BOOL OnOff, UINT8 isSnapVideo) } vendor_isp_set_awb(AWBT_ITEM_MANUAL, &awb_manual); - vendor_isp_set_iq(IQT_ITEM_NIGHT_MODE, &night_mode); - vendor_isp_set_ae(AET_ITEM_MANUAL, &ae_manual); + 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); } - //vos_util_delay_ms(20); + if (OnOff){ + vos_util_delay_ms(1000); + } + if (isSnapVideo == 0) { + if ((hd_ret = vendor_isp_init()) != HD_OK) { + DBG_ERR("vendor_isp_init() fail(%d)\r\n", hd_ret); + } + + 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); + } + } return 0; } @@ -2159,6 +2264,7 @@ INT32 MovieExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_IMGCAP_EXIF_EN, TRUE); MovieExe_InitExif(); #endif + Set_AE_Speed(); MovieExe_InitAlgFunc(); diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c index 42610004c..e3bd8d040 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c @@ -1433,7 +1433,7 @@ ER UiDateImprint_CopyData(DS_STAMP_INFOR *stampInfo,HD_VIDEO_FRAME* Img, UINT32 //sprintf((char *)puiPara->Latitude, "3458.3100N"); //sprintf((char *)puiPara->Longitude, "12294.4200E"); sf_get_gps_info_str(customString, 1); - if(puiPara->GpsSwitch == SF_ON) + if(0/*puiPara->GpsSwitch == SF_ON*/) { if(customString[0] != '\0') { 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 11d7f3da8..2e30fd94f 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 @@ -201,6 +201,11 @@ #define DEFAULT_PIR_SWITCH SF_ON #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7 #define DEFAULT_TIMELAPSE_SWITCH SF_OFF +#if SF_BATTERY_TEST == ENABLE +#define DEFAULT_GPRS_SWITCH SF_OFF +#else +#define DEFAULT_GPRS_SWITCH SF_ON +#endif #endif #define DEFAULT_SF_CAMID SF_CAMID_OFF @@ -220,7 +225,6 @@ //#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7 //#endif -#define DEFAULT_GPRS_SWITCH SF_ON #define DEFAULT_BATTERY_TYPE SF_BATT_ALKALINE #define DEFAULT_WORKTIME_SWITCH SF_OFF #define DEFAULT_SIM_AUTO_SWITCH SF_SIM_SWITCH_AUTO 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 9da211d10..bd03725cd 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 @@ -2321,7 +2321,7 @@ void sf_power_on_para_check_init(void) } else if(PowerOnMode == PWR_ON_DAILY_REPORT) { - puiPara->NeedTimeSyncStartUp = 1; + //puiPara->NeedTimeSyncStartUp = 1; if (puiPara->DailyReportSwitch) { puiPara->GpsSendFlag = 1; // indicate need send dp file in b power on. } diff --git a/code/application/source/sf_app/code/include/sf_service.h b/code/application/source/sf_app/code/include/sf_service.h index a75726ef7..5cbab8d6c 100755 --- a/code/application/source/sf_app/code/include/sf_service.h +++ b/code/application/source/sf_app/code/include/sf_service.h @@ -100,6 +100,8 @@ int get_gps_location(void); void keep_get_gps_location(const SF_GPS_PARAM param); void keep_seraching_gps_location(const int timeout_ms); void app_RegisterNet_stop(); +int sf_check_sd(void); +void sf_save_camera_gps_info(void); #ifdef __cplusplus #if __cplusplus 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 5a47c73a0..0d6e39e61 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 @@ -2674,7 +2674,7 @@ SINT32 sf_module_complete_init(void) { sprintf((char *)gsmPara, "at+qcfg=\"dbgctl\",1\r"); } - + sf_set_sim_insert(1); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; @@ -4027,7 +4027,7 @@ SINT32 sf_auto_net_reg(void) strcpy((char *)gsmPara, "AT+QLWCFG=\"startup\",0\r"); } } - + sf_set_sim_insert(1); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); ttyData.len = strlen(gsmPara) + 2; 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 f5869032f..fbe82d39a 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 @@ -1332,7 +1332,13 @@ SINT32 sf_4g_module_ota_ftp(void) .ftpsFlag = ssl_flag, .user = (const char*)user, .password = (const char*)password}; - + /* + printf("ftp_manager_init url = %s\n", config.ip); + printf("ftp_manager_init port = %d param port = %s\n", config.port, pPara->FtpsPort); + printf("ftp_manager_init ftpsFlag = %d\n", config.ftpsFlag); + printf("ftp_manager_init user = %s\n", config.user); + printf("ftp_manager_init password = %s\n", config.password); + */ ftp_manager_init(config); if(SF_TRUE == sf_file_IsExsit(SF_MODULE_UP_FILE_PATH)){ @@ -1439,7 +1445,13 @@ SINT32 sf_camera_ota_ftp(void) .ftpsFlag = ssl_flag, .user = (const char*)user, .password = (const char*)password}; - + /* + printf("ftp_manager_init url = %s\n", config.ip); + printf("ftp_manager_init port = %d param port = %s\n", config.port, pPara->FtpsPort); + printf("ftp_manager_init ftpsFlag = %d\n", config.ftpsFlag); + printf("ftp_manager_init user = %s\n", config.user); + printf("ftp_manager_init password = %s\n", config.password); + */ ftp_manager_init(config); if(SF_TRUE == sf_file_IsExsit(SF_CAM_UP_FILE_PATH)){ 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 66929bf47..63beb7337 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 @@ -1298,7 +1298,8 @@ SINT32 sf_sms_read_message(void) int msmflag = 0; int msmtmp[255] = { 0 }; int msmmb = 0; - //static testflag = 0; + //static int testflag = 0; + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; UIMenuStoreInfo *pPara = sf_app_ui_para_get(); SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); @@ -1318,7 +1319,8 @@ SINT32 sf_sms_read_message(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); printf("%s:%d s\n", __FUNCTION__, __LINE__); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; break; case SMS_SIM_IRA: @@ -1328,7 +1330,8 @@ SINT32 sf_sms_read_message(void) printf("%s:%d s\n", __FUNCTION__, __LINE__); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; break; case SMS_SIM_CMGR: @@ -1412,7 +1415,8 @@ SINT32 sf_sms_read_message(void) sprintf((char *)gsmPara, "AT+CMGR=%d\r", number); //read message ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - + ttyData.cmp = "+CMGR:"; + ttyData.len = strlen(gsmPara) + 2; //number++; if((pSifarPara->SmsFlag == 1) && (msmll)) { @@ -1431,7 +1435,7 @@ SINT32 sf_sms_read_message(void) printf("\n[%s:%d] pSifarPara->SmsFlag:%d\n", __FUNCTION__, __LINE__, pSifarPara->SmsFlag); /*if(0 == testflag) { - snprintf((char *)gsmPara, sizeof(gsmPara), "AT+CMGR=0+CMGR: \"REC UNREAD\",\"8619925440232\",,\"22/10/25,14:29:23+32\"$R09*10#W1000001#W1000003#W1000005#W1000007#W1000009#W1000011#W1000013#W1000015#W1000017#W1000019$"); + snprintf((char *)gsmPara, sizeof(gsmPara), "AT+CMGR=0+CMGR: \"REC UNREAD\",\"8619925440232\",,\"22/10/25,14:29:23+32\"$R06*1$"); testflag = 1; }*/ @@ -1546,6 +1550,8 @@ SINT32 sf_sms_read_message(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); eSmsLocation = SMS_SIM_EXIT; + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; break; case SMS_SIM_EXIT: @@ -1563,8 +1569,8 @@ SINT32 sf_sms_read_message(void) } sf_gsm_para_buff_clear(); - - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); printf("-----eSmsLocation:%d-----time:%d-----\n", eSmsLocation, time); if((gsmPara[0] != '\0') && (eSmsLocation != SMS_SIM_PARA)) @@ -1611,6 +1617,8 @@ SINT32 sf_check_message(void) SINT32 ttyRet = 0; char strtmp[20] = {0}; UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; + printf("%s:%d s\n", __FUNCTION__, __LINE__); if(SUCCESS != app_ttyusb_IsOpen()) @@ -1651,8 +1659,8 @@ SINT32 sf_check_message(void) } sf_gsm_para_buff_clear(); - - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { @@ -1674,6 +1682,8 @@ SINT32 sf_check_message(void) strcpy((char *)gsmPara, "AT+QCFG=\"sms/listmsgmap\",\"REC UNREAD\"\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "+QCFG:"; + ttyData.len = strlen(gsmPara) + 2; continue; } else @@ -1694,9 +1704,11 @@ SINT32 sf_check_message(void) location = MMS_ATCMGL1; //strcpy((char *)gsmPara, "AT+CMGL=\"ALL\"\r"); strcpy((char *)gsmPara, "AT+QCFG=\"sms/listmsgmap\",\"REC UNREAD\"\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); sf_sleep_ms(500); + ttyData.cmp = "+QCFG:"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -1810,6 +1822,8 @@ SINT32 sf_check_message(void) strcpy((char *)gsmPara, "AT+QCFG=\"sms/listmsgmap\",\"REC READ\"\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "+QCFG:"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -1827,6 +1841,8 @@ SINT32 sf_check_message(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); sf_sleep_ms(500); + ttyData.cmp = "+QCFG:"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -2148,6 +2164,8 @@ SINT32 sf_power_off_check_sms(void) UINT8 PowerOnMode = sf_poweron_type_get(); SINT32 sendFlag = SF_FAILURE; UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SLOGD(" s %d %d\n",sf_get_sim_insert(), sf_app_while_flag()); + /*instant, hybrid mode*/ if((!sf_get_signal_ready_flag()) && (sf_get_sim_insert()) && (sf_app_while_flag())) { 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 466d368ae..01beefc39 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 @@ -1149,6 +1149,11 @@ 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}; + if(SF_FAILURE == sf_check_sd()) + { + MLOGE("ERROR sf_check_sd\n"); + return SF_FAILURE; + } stpfncallback.pstParam = sf_customer_param_get(); stpfncallback.pstaticParam = sf_app_ui_para_get(); // stpfncallback.pstaticParam = sf_statistics_param_get(); @@ -1185,6 +1190,12 @@ SINT32 sf_cardv_file_to_app_send_thread(void) { SINT32 sf_file_send_auto(void) { SINT32 s32ret = 0; SF_FN_PARAM_S stpfncallback = {0}; + if(SF_FAILURE == sf_check_sd()) + { + MLOGE("ERROR sf_check_sd\n"); + return SF_FAILURE; + } + stpfncallback.pstParam = sf_customer_param_get(); stpfncallback.pstaticParam = sf_app_ui_para_get(); // stpfncallback.pstaticParam = sf_statistics_param_get(); @@ -1505,9 +1516,15 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) s32ret = sf_4G_register_net_manual(pfnParam); if (s32ret != SF_SUCCESS) { - sf_set_signal_ready_flag(TRUE); + sf_set_signal_ready_flag(TRUE); } - + + if (1 == pCustomerParam->NeedTimeSyncStartUp) { + printf("[%s:%d]8 between A and B,no reg net again,no reset time sync.\n", + __FUNCTION__, __LINE__); + sf_set_dr_reset_time_sys_flag(1); + } + if (0 != sf_get_cq_signal()) { pCustomerParam->NeedTimeSyncStartUp = 1; } @@ -1528,11 +1545,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) if ((SF_ON == pCustomerParam->GpsSwitch)) { s32ret = open_gps(s32ret); } - if (1 == pCustomerParam->NeedTimeSyncStartUp) { - printf("[%s:%d]8 between A and B,no reg net again,no reset time sync.\n", - __FUNCTION__, __LINE__); - sf_set_dr_reset_time_sys_flag(1); - } + //sf_dailyReport_set(); //sf_share_mem_customer_down(1); @@ -2001,6 +2014,7 @@ int get_gps_location(void) strcpy(pCustomerParam->Latitude, location.latitude); LogInfo("location.Longitude = %s\n", pCustomerParam->Longitude); LogInfo("location.Latitude = %s\n", pCustomerParam->Latitude); + sf_save_camera_gps_info(); return GPS_GET_SUCCEED; } return GPS_GET_FAILED; @@ -2069,6 +2083,76 @@ void serach_gps_onkey_start(void) pthread_attr_destroy(&attr); } +int sf_check_sd(void) +{ + UINT8 i = 0; + int ret = SF_SUCCESS; + if (sf_sd_status_get() != SF_SD_OK) { + ret = SF_FAILURE; + for (i = 0; i < 20; i++) { + ret = sf_sd_status_get(); + if (SF_SD_OK == ret) { + ret = SF_SUCCESS; + MLOGI("usb net ip up\r\n"); + break; + } else { + sleep(1); + } + } + return ret; + } + return ret; +} +/************************************************* + Function: sf_save_camera_info + Description: save camera info to sd + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_save_camera_gps_info(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + char *temp = NULL; + int fd = 0; + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + + //if(fristRun == 0) + // return; + + //fristRun = 0; + temp = malloc(200); + if (temp == NULL) { + MLOGE("temp malloc err\n"); + return; + } + + memset(temp,'\0', 200); + sprintf(temp, "LATITUDE:%s\r\nLONGITUDE:%s\r\n", puiPara->Latitude, puiPara->Longitude); + + printf("[%s:%d] \n%s\n", __FUNCTION__, __LINE__,temp); + + if(access((char*)SF_CAMERA_GPS_INFO_FILENAME, F_OK) == 0) + { + system("rm -rf /mnt/sd/gps.txt"); + system("sync"); + printf("[%s:%d] rm\n", __FUNCTION__, __LINE__); + + //FileSys_DeleteFile(); + } + fd = open(SF_CAMERA_GPS_INFO_FILENAME, O_WRONLY | O_CREAT); + if(fd) + { + lseek(fd, 0, SEEK_END); + write(fd, temp, strlen(temp)); + close(fd); + system("sync"); + } + free(temp); + + printf("[%s:%d] e\n", __FUNCTION__, __LINE__); +} #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/battery/sf_battery.c b/code/application/source/sf_app/code/source/battery/sf_battery.c index 4f16020d1..e4b289a76 100755 --- a/code/application/source/sf_app/code/source/battery/sf_battery.c +++ b/code/application/source/sf_app/code/source/battery/sf_battery.c @@ -103,7 +103,30 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI */ //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; - volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; + volt = (27 * adcVal + 3097) / 531; + return volt; +} + +/************************************************* + Function: sf_aa_battery_voltage_convert + Description: battery voltage convert + Input: resistanceGnd:Grounding terminal resistance,resistanceVin:Input resistance,adcVal:adc val + Output: N/A + Return: Volt * 10 + Others: N/A +*************************************************/ +UINT32 sf_aa_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal) +{ + UINT32 volt = 0; + + /*511 * (detected voltage) / (SARADC reference voltage) + DC input voltage x resistanceGnd/(resistanceGnd + resistanceVin) = detected voltage, + SARADC reference voltage:1.8V + */ + + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; + volt = (27 * adcVal + 554) / 539; return volt; } @@ -112,10 +135,20 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN UINT32 adcVal = 0; //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); - adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + adcVal = (volt * 531 - 3097) / 27; return adcVal; } +UINT32 sf_aa_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt) +{ + UINT32 adcVal = 0; + + //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); + //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + adcVal = (volt * 539 - 554) / 27; + return adcVal; +} UINT32 sf_get_max_value(UINT32 *_ValueList) { UINT8 readBatCnt = 0; @@ -320,7 +353,7 @@ UINT32 sf_battery_adc_value_get_once(void) if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { - batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); + batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc); //batVoltageVal += 2; if(puiPara->BatteryLogSwitch) printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); @@ -638,7 +671,7 @@ signed int sf_battery_value_fast_get(void) if(puiPara->BatteryLogSwitch) { - printf("%s:%d [%d]Other Battery ADC Value=%d,After Convert:%d(%d.%dV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(24, 100, batValueList[readBatCnt]), + printf("%s:%d [%d]Other Battery ADC Value=%d,After Convert:%d(%d.%dV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_aa_battery_convert_to_adc(24, 100, batValueList[readBatCnt]), batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); } } @@ -844,7 +877,7 @@ void sf_battery_level_polling(void) } else { - printf("[average]Other Battery Adc:%d After Convert:(%d.%dV)\n\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal),BatVoltageVal / 10, BatVoltageVal % 10); + printf("[average]Other Battery Adc:%d After Convert:(%d.%dV)\n\n", sf_aa_battery_convert_to_adc(24, 100, BatVoltageVal),BatVoltageVal / 10, BatVoltageVal % 10); } } } 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 55f919e35..d0de1ab7e 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 @@ -287,16 +287,28 @@ void sf_app_power_on_para_check_init(void) #if HUNTING_CAMERA_MCU == ENABLE UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UINT8 PowerOnMode = sf_poweron_type_get(); - if(((PowerOnMode == SF_MCU_STARTUP_NORMAL) || (PowerOnMode == SF_MCU_STARTUP_OFF) || (PowerOnMode == SF_MCU_STARTUP_ONKEY))) - { - if(1 == puiPara->NeedTimeSyncStartUp){ - puiPara->NeedTimeSyncStartUp = 0; - } - if(0 == puiPara->NetWorkNeedSearch){ - puiPara->NetWorkNeedSearch = 1; - } + if(((PowerOnMode == SF_MCU_STARTUP_NORMAL) || (PowerOnMode == SF_MCU_STARTUP_OFF) || (PowerOnMode == SF_MCU_STARTUP_ONKEY))) + { + if(1 == puiPara->NeedTimeSyncStartUp){ + puiPara->NeedTimeSyncStartUp = 0; + } + if(0 == puiPara->NetWorkNeedSearch){ + puiPara->NetWorkNeedSearch = 1; + } memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid)); - } + } + else if(PowerOnMode == SF_MCU_STARTUP_SYN_PARAM) + { + puiPara->NetWorkNeedSearch = 0; + puiPara->NeedTimeSyncStartUp = 0; + } + else if(PowerOnMode == SF_MCU_STARTUP_DP) + { + //puiPara->NeedTimeSyncStartUp = 1; + if (puiPara->DailyReportSwitch) { + puiPara->GpsSendFlag = 1; // indicate need send dp file in b power on. + } + } printf("PowerOnMode=%d NeedTimeSyncStartUp=%d NetWorkNeedSearch:%d\n", PowerOnMode, puiPara->NeedTimeSyncStartUp, puiPara->NetWorkNeedSearch); if(puiPara->Multishot != sf_sys_get_flag(FL_CONTINUE_SHOT)) { diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index fc4f643ba..c8cf6efeb 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1519,12 +1519,20 @@ static const SF_CHAR* sf_process_message_getstatusstring(SF_MESSAGE_TYPE_E enTyp static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) { static UINT8 wifistart = 0; + UINT8 powerOnMode = 0; + //printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1); //SF_MESSAGE_BUF_S stMessageBuf = {0}; MLOGI("ID = %#x\n",pMessageBuf->arg1); switch(pMessageBuf->arg1) { case SF_MCU_CMD_POWERON: + powerOnMode = sf_cardv_convert_power_on_mode(); + if(pMessageBuf->arg2 != powerOnMode) + { + MLOGE("err get powerOnMode:%d powerOnMode:%d\n",pMessageBuf->arg2, powerOnMode); + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_NORMAL); + } sf_set_power_on_mode(pMessageBuf->arg2); sf_mcu_set_irshtter(pMessageBuf->arg3); break; @@ -1701,10 +1709,10 @@ static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf) break; case SF_DEV_CMD_BAT: batteryVal = pMessageBuf->arg2; - batteryType = pMessageBuf->arg3 & 0xf0; - powerVal = pMessageBuf->arg3 & 0xf; + batteryType = (pMessageBuf->arg3>>16)&0x0F;//pMessageBuf->arg3 & 0xf0; + powerVal = pMessageBuf->arg3 & 0xFF; sf_cardv_battery_level_update(batteryVal); - MLOGI("batteryVal:%d batteryType:%d\n",batteryVal,batteryType); + MLOGI("batteryVal:%d batteryType:%d powerVal:%d p:%d\n",batteryVal, batteryType, powerVal,pMessageBuf->arg3); break; diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index 062bc6b47..9c01265ba 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -947,7 +947,7 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 DISABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MD4RCwD6T9" +#define SF_BASE_VERSION "7MD4RCwD6TB" #define HW_S530 1 #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */ @@ -957,7 +957,6 @@ #define SF_THUMB_SEND_LIST PHOTO_THUMB_PATH"send.list" #define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list" #define SF_TRIGGER_TIME_TEST DISABLE -#define SF_TRIGGER_TIME_TEST DISABLE #define SF_IQ_TEST DISABLE #define HW_S530 1 #define PHOTO_ISP_STAMP DISABLE @@ -975,7 +974,7 @@ #define SF_TEST_GPRS 1 #define CUSTOM_TEST_FTPS 0 -#define SF_TEST_OTA_FTP 0 +#define SF_TEST_OTA_FTP 1 #define CUSTOM_TEST_OTA_FTP 0 #define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 5000 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 16d4ed892..ab0e78504 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -55,6 +55,7 @@ static void card_insert_job(void) } // call the function to wait init finish FileSys_WaitFinishEx('A'); + FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE); fastboot_set_done(BOOT_INIT_FILESYSOK); printf("filesys_init e\r\n"); } 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 7b6d76d3c..6a8725200 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -259,6 +259,8 @@ static void MovieFast_ShutDown(void) #if HUNTING_CAMERA_MCU sf_file_thumb_cfg_sava(); sf_para_print(); + DBG_DUMP("wait filesys close ...\n"); + FileSys_Close(FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE if(sf_get_power_off_flag()){ sf_mcu_reg_set(SF_MCU_POWEROFF,0); @@ -889,9 +891,10 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 #endif DBG_DUMP("MOVIE_USER_CB_EVENT_JENC_DONE %s\n", tmp); - FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); FileSys_WriteFile(fp, (UINT8*)ptr->addr_va, &ptr->size, 0, NULL); + FileSys_FlushFile(fp); FileSys_CloseFile(fp); thumb_current_path[0] = '\0'; } 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 bac0068f9..d77a8c180 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -894,6 +894,7 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId) Length = Size; rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL); + FileSys_FlushFile(fp); FileSys_CloseFile(fp); if (rt == FST_STA_OK) { DCF_AddDBfile(FilePath); @@ -1891,6 +1892,8 @@ static void PhotoFast_ShutDown(void) #if HUNTING_CAMERA_MCU == ENABLE sf_file_thumb_cfg_sava(); sf_para_print(); + DBG_DUMP("wait filesys close ...\n"); + FileSys_Close(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/PhotoFastCapDateImprint.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c index 9fb955ead..23060181d 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c @@ -857,7 +857,7 @@ INT32 PhotoFastCapDateImprint_GenYuvData(HD_VIDEO_FRAME *pDstImg) //sprintf((char *)puiPara->Latitude, "3458.3100N"); //sprintf((char *)puiPara->Longitude, "12294.4200E"); sf_get_gps_info_str(customString, 1); - if(puiPara->GpsSwitch == SF_ON) + if(0/*puiPara->GpsSwitch == SF_ON*/) { if(customString[0] != '\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 7cd72c940..25d7ba657 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -2159,9 +2159,10 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) #endif DBG_IND("PHOTO THUMB %s\n", tmp); - FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); FileSys_WriteFile(fp, (UINT8*)queue_ele_in->jpg_thumb_addr, &queue_ele_in->jpg_thumb_size, 0, NULL); + FileSys_FlushFile(fp); FileSys_CloseFile(fp); #if HUNTING_CAMERA_MCU == ENABLE diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index bf0fcd70a..2e30fd94f 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -177,7 +177,7 @@ #if SF_IQ_TEST == ENABLE #if SF_HW_TEST == ENABLE - #define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO + #define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO_VIDEO #define DEFAULT_PIR_SWITCH SF_OFF #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_0 #define DEFAULT_TIMELAPSE_SWITCH SF_ON @@ -201,6 +201,11 @@ #define DEFAULT_PIR_SWITCH SF_ON #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7 #define DEFAULT_TIMELAPSE_SWITCH SF_OFF +#if SF_BATTERY_TEST == ENABLE +#define DEFAULT_GPRS_SWITCH SF_OFF +#else +#define DEFAULT_GPRS_SWITCH SF_ON +#endif #endif #define DEFAULT_SF_CAMID SF_CAMID_OFF @@ -213,14 +218,13 @@ #define DEFAULT_PIR_DELAY_SWITCH SF_OFF #define DEFAULT_GPRS_MODE SF_REMOTE_CONTROL_OFF #define DEFAULT_DAILY_REPORT_SWITCH SF_ON -#define DEFAULT_GPS_SWITCH SF_OFF +#define DEFAULT_GPS_SWITCH SF_ON //#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) //#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_HIGH //#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) //#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7 //#endif -#define DEFAULT_GPRS_SWITCH SF_ON #define DEFAULT_BATTERY_TYPE SF_BATT_ALKALINE #define DEFAULT_WORKTIME_SWITCH SF_OFF #define DEFAULT_SIM_AUTO_SWITCH SF_SIM_SWITCH_AUTO diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index 79aeb8c38..4245ca5dc 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -579,7 +579,7 @@ void Init_SysInfo(void) void Init_MenuInfo(void) { DBG_IND("[Init_MenuInfo][PStore update state]\r\n"); - DBG_IND("Version %s %d\r\n", currentInfo.pVersion, currentInfo.uhInfoSize); + DBG_IND("uhInfoSize:%d\r\n", currentInfo.uhInfoSize); SysCheckFlag(); // check flag (limit value) //SysSetFixedFlag(); // set fixed flag @@ -652,7 +652,7 @@ void KeyScan_EnableMisc(BOOL bEn) GxPower_SetControl(GXPWR_CTRL_AUTOPOWEROFF_EN, 0xff); //reset GxPower_SetControl(GXPWR_CTRL_AUTOSLEEP_EN, 0xff); //reset SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID, FALSE); -#if (USB_MODE == ENABLE) +#if (USB_MODE==ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, FALSE); #endif //UISound_EnableKey(FALSE); // 660 is full-duplex for audio @@ -663,7 +663,7 @@ void KeyScan_EnableMisc(BOOL bEn) //#NT#Fix Mantis Issue 0113246 SxTimer_SetFuncActive(SX_TIMER_DET_AUTOPOWEROFF_ID, TRUE); //#NT#2016/11/21#Adam Su -end -#if (USB_MODE == ENABLE) +#if (USB_MODE==ENABLE) SxTimer_SetFuncActive(SX_TIMER_DET_USB_ID, TRUE); #endif //UISound_EnableKey(TRUE); // 660 is full-duplex for audio @@ -1099,8 +1099,8 @@ void SysResetFlag(void) { puiPara->TimelapseTime.Hour = 0; #if SF_HW_TEST == ENABLE - puiPara->TimelapseTime.Min = 0; - puiPara->TimelapseTime.Sec = 30; + puiPara->TimelapseTime.Min = 3; + puiPara->TimelapseTime.Sec = 0; #else puiPara->TimelapseTime.Min = 0; puiPara->TimelapseTime.Sec = 5; @@ -1206,7 +1206,9 @@ void SysResetFlag(void) snprintf((char *)puiPara->strPASSPHRASE_hotspot_1, sizeof(puiPara->strPASSPHRASE_hotspot_1), "S210X123"); #endif - + + snprintf((char *)puiPara->WifiApPWD, sizeof(puiPara->WifiApPWD), "Reveal2021"); + UINT8 tmpStr[60] = {0}; #if SF_TEST_GPRS snprintf((char *)puiPara->FtpIp, sizeof(puiPara->FtpIp), USER_FTP_IP); @@ -1230,6 +1232,7 @@ void SysResetFlag(void) snprintf((char *)puiPara->FtpPwd, sizeof(puiPara->FtpPwd), (char *)tmpStr); #endif + memset(tmpStr, '\0', sizeof(tmpStr)); sf_base64_decode(OTA_FTP_IP, (char *)tmpStr); snprintf((char *)puiPara->OtaFtpIp, sizeof(puiPara->OtaFtpIp), (char *)tmpStr); @@ -1242,14 +1245,14 @@ void SysResetFlag(void) memset(tmpStr, '\0', sizeof(tmpStr)); sf_base64_decode(OTA_FTP_PASSWORD, (char *)tmpStr); snprintf((char *)puiPara->OtaFtpPassWord, sizeof(puiPara->OtaFtpPassWord), (char *)tmpStr); - + #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) puiPara->GpsNumber = DEFAULT_GPS_NUMBER; puiPara->TimeSend1Switch = DEFAULT_TIMESEND1_SWITCH; puiPara->TimeSend2Switch = DEFAULT_TIMESEND2_SWITCH; puiPara->TimeSend3Switch = DEFAULT_TIMESEND3_SWITCH; puiPara->TimeSend4Switch = DEFAULT_TIMESEND4_SWITCH; - #endif + #endif puiPara->x1 = 0; puiPara->x2 = 0; @@ -1257,18 +1260,10 @@ void SysResetFlag(void) puiPara->x4 = 0; puiPara->x5 = 0; puiPara->x6 = 0; - + #else - SysSetFlag(FL_ETHCAM_TX_IP_ADDR, DEFAULT_ETHCAM_TX_IP_ADDR); - //#NT#2023/01/11#Eric - begin //#NT#Support - //=====================Sifar=============///Eric - //Ux_SendEvent(&UISetupObjCtrl, NVTEVT_EXE_BOOTWORKMODE, 1, SysGetFlag(CamMode)); - //#NT#2023/01/11#Eric - end - //#2023/02/10#Payton - begin - //=====================Sifar============= - SysSetFlag(CamNameSwitch, DEFAULT_SF_CAMID); SysSetFlag(CamMode, DEFAULT_BOOT_WORK_MODE); SysSetFlag(FlashLed, DEFAULT_FLASH_LED); //ImgSize @@ -1413,13 +1408,7 @@ void SysExeMenuSettingFuncs(void) #endif //#NT#2023/01/11#Eric - begin //#NT#Support //=====================Sifar=============///Eric - #if HUNTING_CAMERA_MCU == ENABLE - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - Ux_SendEvent(&UISetupObjCtrl, NVTEVT_EXE_BOOTWORKMODE, 1, puiPara->CamMode); - #else - Ux_SendEvent(&UISetupObjCtrl, NVTEVT_EXE_BOOTWORKMODE, 1, SysGetFlag(CamMode)); - #endif - +// Ux_SendEvent(&UISetupObjCtrl, NVTEVT_EXE_BOOTWORKMODE, 1, SysGetFlag(CamMode)); //#NT#2023/01/11#Eric - end } @@ -1723,16 +1712,29 @@ void sf_power_on_para_check_init(void) #if HUNTING_CAMERA_MCU == ENABLE UIMenuStoreInfo *puiPara = sf_ui_para_get(); UINT8 PowerOnMode = sf_convert_power_on_mode(); - if(((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_OFF) || (PowerOnMode == PWR_ON_SETUP))) - { - if(1 == puiPara->NeedTimeSyncStartUp){ - puiPara->NeedTimeSyncStartUp = 0; - } - if(0 == puiPara->NetWorkNeedSearch){ - puiPara->NetWorkNeedSearch = 1; - } + if(((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_OFF) || (PowerOnMode == PWR_ON_SETUP))) + { + if(1 == puiPara->NeedTimeSyncStartUp){ + puiPara->NeedTimeSyncStartUp = 0; + } + if(0 == puiPara->NetWorkNeedSearch){ + puiPara->NetWorkNeedSearch = 1; + } memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid)); - } + } + else if(PowerOnMode == PWR_ON_TIME_SYNC) + { + puiPara->NetWorkNeedSearch = 0; + puiPara->NeedTimeSyncStartUp = 0; + } + else if(PowerOnMode == PWR_ON_DAILY_REPORT) + { + //puiPara->NeedTimeSyncStartUp = 1; + if (puiPara->DailyReportSwitch) { + puiPara->GpsSendFlag = 1; // indicate need send dp file in b power on. + } + } + printf("PowerOnMode=%d NeedTimeSyncStartUp=%d NetWorkNeedSearch:%d\n", PowerOnMode, puiPara->NeedTimeSyncStartUp, puiPara->NetWorkNeedSearch); if(puiPara->Multishot != SysGetFlag(FL_CONTINUE_SHOT)) { diff --git a/rtos/code/driver/na51089/source/mcu/sf_battery.c b/rtos/code/driver/na51089/source/mcu/sf_battery.c index d64dd0dbf..480819130 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_battery.c +++ b/rtos/code/driver/na51089/source/mcu/sf_battery.c @@ -107,7 +107,30 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI */ //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; - volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; + volt = (27 * adcVal + 3097) / 531; + return volt; +} + +/************************************************* + Function: sf_aa_battery_voltage_convert + Description: battery voltage convert + Input: resistanceGnd:Grounding terminal resistance,resistanceVin:Input resistance,adcVal:adc val + Output: N/A + Return: Volt * 10 + Others: N/A +*************************************************/ +UINT32 sf_aa_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal) +{ + UINT32 volt = 0; + + /*511 * (detected voltage) / (SARADC reference voltage) + DC input voltage x resistanceGnd/(resistanceGnd + resistanceVin) = detected voltage, + SARADC reference voltage:1.8V + */ + + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; + volt = (27 * adcVal + 554) / 539; return volt; } @@ -116,10 +139,19 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN UINT32 adcVal = 0; //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); - adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + adcVal = (volt * 531 - 3097) / 27; return adcVal; } +UINT32 sf_aa_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt) +{ + UINT32 adcVal = 0; + //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); + //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); + adcVal = (volt * 539 - 554) / 27; + return adcVal; +} UINT32 sf_get_max_value(UINT32 *_ValueList) { UINT8 readBatCnt = 0; @@ -349,7 +381,7 @@ UINT32 sf_battery_adc_value_get_once(void) { if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { - batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); + batVoltageVal = sf_aa_battery_voltage_convert(24, 100, batAdc); //batVoltageVal += 4; if(puiPara->BatteryLogSwitch) printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); @@ -663,7 +695,7 @@ signed int sf_battery_value_fast_get(void) if(puiPara->BatteryLogSwitch) { - printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(24, 100, batValueList[readBatCnt]), + printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_aa_battery_convert_to_adc(24, 100, batValueList[readBatCnt]), batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); } } @@ -1692,7 +1724,7 @@ void sf_battery_print(void) } else { - printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10); + printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_aa_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10); } } #endif diff --git a/rtos/code/driver/na51089/source/mcu/sf_mcu.c b/rtos/code/driver/na51089/source/mcu/sf_mcu.c index 90c645198..34757766f 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_mcu.c +++ b/rtos/code/driver/na51089/source/mcu/sf_mcu.c @@ -2153,6 +2153,9 @@ void sf_file_thumb_cfg_sava(void) //FileSys_CloseFile(fp); free(pThumbFileCfg); #endif + //printf("%s:%d test\n", __FUNCTION__, __LINE__); + + //return ; UINT8 fileIndex = 0; UIMenuStoreInfo *puiPara = sf_ui_para_get(); @@ -2198,7 +2201,7 @@ void sf_file_thumb_cfg_sava(void) else { fd = open(sendListName, O_APPEND | O_WRONLY | O_CREAT); }*/ - fs = FileSys_OpenFile(sendListName, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + fs = FileSys_OpenFile(sendListName, FST_CREATE_ALWAYS | FST_OPEN_WRITE); if(/*fd*/fs) { for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) @@ -2208,6 +2211,7 @@ void sf_file_thumb_cfg_sava(void) printf("%s:%d thumbfileSize:%ld thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize,pThumbFileCfg->stfileattr[fileIndex].thumbfileName,pThumbFileCfg->stfileattr[fileIndex].thumbfilePath); } } + FileSys_FlushFile(fs); FileSys_CloseFile(fs); //close(fd); } @@ -2218,7 +2222,7 @@ void sf_file_thumb_cfg_sava(void) char str1[6] = { 0 }; char str2[6] = { 0 }; printf("fileName:%s\n",SF_BATTERY_TEST_FILE); - fs = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + fs = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_CREATE_ALWAYS | FST_OPEN_WRITE); if(fs) { for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) @@ -2232,6 +2236,7 @@ void sf_file_thumb_cfg_sava(void) sf_BatteryInfoSave(str2,fs); } } + FileSys_FlushFile(fs); FileSys_CloseFile(fs); //close(fd); } @@ -2243,7 +2248,7 @@ void sf_file_thumb_cfg_sava(void) char str4[6] = { 0 }; printf("fileName:%s\n",SF_HW_TEST_FILE); - fs = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + fs = FileSys_OpenFile(SF_HW_TEST_FILE, FST_CREATE_ALWAYS | FST_OPEN_WRITE); if(fs) { for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) @@ -2257,6 +2262,7 @@ void sf_file_thumb_cfg_sava(void) sf_hw_info_save(str4,fs); } } + FileSys_FlushFile(fs); FileSys_CloseFile(fs); //close(fd); }