diff --git a/application.bin b/application.bin new file mode 100644 index 000000000..96426b418 Binary files /dev/null and b/application.bin differ diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxDisplay_LCD.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxDisplay_LCD.c index 850c6f5c0..72120eb82 100755 --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxDisplay_LCD.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxDisplay_LCD.c @@ -544,7 +544,7 @@ static void DrvLCD_Dump(void) static void GPIOMap_LCDReset(void) { // Reset LCD -#if 1//defined(_Disp_IF8B_LCD1_ILI9341_) +#if 0//defined(_Disp_IF8B_LCD1_ILI9341_) // gpio_clearPin(GPIO_LCD_RESET); // SwTimer_DelayMs(10); // gpio_setPin(GPIO_LCD_RESET); diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index 8062244ed..3568abae8 100644 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -928,7 +928,7 @@ #define SF_SEND_LIST_DIR "/mnt/sd/THUMB/" #define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list" -#define SF_IQ_TEST ENABLE +#define SF_IQ_TEST DISABLE #define PHOTO_ISP_STAMP DISABLE #define SF_BASE_VERSION_FEA "R2.3" 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 0112a8a44..5a6df04af 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -1427,7 +1427,22 @@ void SysCheckFlag(void) #endif #endif - printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__); +#if HUNTING_CAMERA_MCU == ENABLE + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UINT8 PowerOnMode = sf_cardv_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; + } + } + printf("PowerOnMode=%d NeedTimeSyncStartUp=%d NetWorkNeedSearch:%d\n", PowerOnMode, puiPara->NeedTimeSyncStartUp, puiPara->NetWorkNeedSearch); + +#endif + //printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__); //#2023/02/10#Payton - end diff --git a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h index b0246b413..5c33750c7 100644 --- a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h +++ b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h @@ -364,7 +364,8 @@ void sf_mcu_version_get(UINT8 *mcuVer); void sf_dailyReport_set(void); UINT16 sf_mcu_get_irshtter(void); void sf_set_dr_reset_time_sys_flag(UINT8 value); - +UINT8 sf_get_power_off_flag(void); +void sf_set_power_off_flag(UINT8 flag); extern unsigned short TrigType; 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 b3d7c1abb..015e63933 100644 --- 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 @@ -362,7 +362,7 @@ SINT32 eg91_qsclk_set(SF_FN_PARAM_S *pfnParam) - while(sts) + while(sf_app_while_flag() && sts) { if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0)) @@ -454,7 +454,7 @@ SINT32 eg91_usb_net_apn_cfg(SF_FN_PARAM_S *pfnParam) ret1 = SF_4G_ERROR_MODULE_OPEN; return ret1; } - while(sts) + while(sf_app_while_flag() && sts) { if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0)) { @@ -588,7 +588,7 @@ SINT32 eg91_sim_init(SF_FN_PARAM_S *pfnParam) SIM_INIT_E enMmcLocation; enMmcLocation = SIM_INIT_ATE; - while(sts) + while(sf_app_while_flag() && sts) { if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0)) { @@ -1337,7 +1337,7 @@ SINT32 eg91_register_net_auto(SF_FN_PARAM_S *pfnParam) //UIMenuStoreInfo *pStaticParam = pfnParam->pstaticParam; UIMenuStoreInfo *pStaticParam = sf_app_ui_para_get(); - while(sts) + while(sf_app_while_flag() && sts) { if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0)) { @@ -1805,7 +1805,7 @@ SINT32 eg91_register_net_manual(SF_FN_PARAM_S *pfnParam) //UIMenuStoreInfo *pStaticParam = pfnParam->pstaticParam; UIMenuStoreInfo *pStaticParam = sf_app_ui_para_get(); - while(sts) + while(sf_app_while_flag() && sts) { if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0)) { @@ -3666,7 +3666,7 @@ SINT32 sf_get_utc(VOID) { ret = SF_SIM_ERROR_UTC; SLOGE(gsmPara); - sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret); + sprintf((char *)logStr, "Error Code:0x%08X\n",ret); SLOGE(logStr); goto SF_UTC_END; } @@ -3678,7 +3678,7 @@ SINT32 sf_get_utc(VOID) { ret = SF_SIM_ERROR_UTC; SLOGE(gsmPara); - sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret); + sprintf((char *)logStr, "Error Code:0x%08X\n",ret); SLOGE(logStr); goto SF_UTC_END; } @@ -3709,7 +3709,7 @@ SINT32 sf_get_utc(VOID) if(time > 800) { SLOGE(gsmPara); - sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.", __FUNCTION__, __LINE__); + sprintf((char *)logStr, "Wait Init Timeout.\n"); printf("%s,GprsMode=%d\n", logStr, pPara->GprsMode); SLOGE(logStr); diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index 0d6dbb24a..5bfef7140 100644 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -108,17 +108,23 @@ int main(int argc, char *argv[]) SINT32 isUsb = sf_usb_IsInsert(); SINT32 isCard = sf_in_card_exist(); printf("[%s:%d] isUsb = %d isCard = %d\n", __FUNCTION__, __LINE__, isUsb,isCard); + if(!isUsb) + { + sf_load_ko(); + } + //sf_share_mem_file_init(); + //sf_share_mem_customer_update(); + sf_com_message_app_init(); + sf_com_message_cardv_init(); + + //app_led_group_register(); + app_message_recv_start(); sf_mcu_init(); sf_get_power_on_mode(); sf_mcu_wdg_set(30); - //sf_share_mem_file_init(); - //sf_share_mem_customer_update(); - sf_com_message_app_init(); - sf_com_message_cardv_init(); - sf_customer_param_load(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); @@ -127,21 +133,16 @@ int main(int argc, char *argv[]) if(!isUsb) { //sf_usb_mux_s(1); - sf_load_ko(); + //sf_load_ko(); sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1); } - else - { - // sf_usb_mux_s(0); - } sf_led_init(); sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT); sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); - //app_led_group_register(); - app_message_recv_start(); + struct sigaction sigAction; sigAction.sa_handler = sf_signalStop; 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 0631894a1..38908fc06 100644 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -1006,7 +1006,8 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) //SF_MESSAGE_BUF_S stMessageBuf = {0}; //UIMenuStoreInfo *pCustomerParam = pfnParam->pstParam; //SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam; - UIMenuStoreInfo *pCustomerParam = pfnParam->pstParam; + //UIMenuStoreInfo *pCustomerParam = pfnParam->pstParam; + UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get(); if(sf_usb_IsInsert()) return SF_SUCCESS; @@ -1094,7 +1095,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) if(pCustomerParam->GpsSendFlag){ s32ret = sf_simcom_ftp_send(2); } - + SLOGD("GpsSendFlag:%d\n", pCustomerParam->GpsSendFlag); break; default: break; diff --git a/code/application/source/sf_app/code/source/commMng/sf_message_queue.c b/code/application/source/sf_app/code/source/commMng/sf_message_queue.c index de50351c5..1620000be 100644 --- a/code/application/source/sf_app/code/source/commMng/sf_message_queue.c +++ b/code/application/source/sf_app/code/source/commMng/sf_message_queue.c @@ -105,6 +105,7 @@ SINT32 sf_com_message_recv_from_cardv(SF_MESSAGE_BUF_S *pMessageBuf) SINT32 sf_com_message_send_to_cardv(SF_MESSAGE_BUF_S *pMessageBuf) { pMessageBuf->mtype = 1; + //printf("[%s:%d] cmdId = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->cmdId); sf_system_cardv_wait_done(); return message_queue_send(cardv_msgQueueId,pMessageBuf); } @@ -132,23 +133,23 @@ BOOL sf_system_check_cardv(void) BOOL sf_system_cardv_wait_done(void) { - UINT8 time = 0; + int time = 0; static BOOL flag = FALSE; if(TRUE == flag) { printf("cardv running\n"); return TRUE; } - while (time < 40) + while (time < 400) { if(TRUE == sf_system_check_cardv()) { printf("cardv wait running\n"); - sf_sleep_ms(100); + //sf_sleep_ms(100); flag = TRUE; return TRUE; } - sf_sleep_ms(100); + sf_sleep_ms(5); time++; } printf("cardv wait running errr\n"); diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c index b53f37b8c..93bfbfa0b 100644 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c @@ -847,7 +847,7 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len) stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK; stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY; stMessageBuf.arg3 = (val[0] & 0x1F); - sf_com_message_send_to_cardv(&stMessageBuf); + ret = 0x05; if(stMessageBuf.arg3 == 3) //ON { @@ -857,7 +857,9 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len) else if((stMessageBuf.arg3 == 0) || (stMessageBuf.arg3 == 1)) //ON {//PIR MODE: ON->OFF/ ON->SETUP sf_set_module_sleep_flag(0); + sf_com_message_send_to_cardv(&stMessageBuf); } + sf_set_power_off_flag(1); } else { 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 837367a02..7c53a9930 100644 --- 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 @@ -1064,6 +1064,17 @@ UINT8 sf_convert_power_on_mode(void) return PowerOnMode; } +UINT8 sf_get_power_off_flag(void) +{ + //printf("[%s:%d]POWEROFF=0x%x\n", __FUNCTION__, __LINE__, POWEROFF); + return POWEROFF; +} +void sf_set_power_off_flag(UINT8 flag) +{ + POWEROFF = flag; + printf("[%s:%d]POWEROFF=%d\n", __FUNCTION__, __LINE__, POWEROFF); +} + BOOL sf_get_mode_flag(void) { //printf("[%s:%d] ConfigureModeFlag:%d\n",__FUNCTION__,__LINE__,ConfigureModeFlag); @@ -1109,7 +1120,7 @@ void sf_set_module_sleep_flag(UINT8 flag) int sf_app_while_flag(void) { - if((!sf_usb_IsInsert()) && (POWEROFF != 1) + if((!sf_usb_IsInsert()) && (sf_get_power_off_flag() != 1) /*&& (ModuleUpdating != 1) && (sf_get_fw_update() == 0)*/) { return 1; @@ -1232,7 +1243,7 @@ void sf_dailyReport_refresh(void) else { puiPara->DailyReportTime2.Hour = (preRtcTime.Hour + (preRtcTime.Min + 30) / 60) % 24; - puiPara->DailyReportTime2.Min = (preRtcTime.Min + 30) % 60; + puiPara->DailyReportTime2.Min = (preRtcTime.Min + 5) % 60; } } } diff --git a/code/hdal/vendor/output/libvendor_ai2_pub.a b/code/hdal/vendor/output/libvendor_ai2_pub.a index 2b59a5dfc..fb9e412ea 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub.a and b/code/hdal/vendor/output/libvendor_ai2_pub.a differ diff --git a/code/hdal/vendor/output/libvendor_ai2_pub2.a b/code/hdal/vendor/output/libvendor_ai2_pub2.a index bbf51287c..676b81866 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub2.a and b/code/hdal/vendor/output/libvendor_ai2_pub2.a differ diff --git a/code/lib/source/sifar/code/include/sf_mcu.h b/code/lib/source/sifar/code/include/sf_mcu.h index 4fc44c163..dacf3f8c1 100644 --- a/code/lib/source/sifar/code/include/sf_mcu.h +++ b/code/lib/source/sifar/code/include/sf_mcu.h @@ -424,6 +424,7 @@ UINT16 sf_mcu_get_irshtter(void); void sf_mcu_set_irshtter(UINT16 data); UINT16 sf_get_irshtter(void); void sf_set_power_on_mode(UINT8 data); +UINT8 sf_cardv_convert_power_on_mode(void); void sf_set_module_sleep_flag(UINT8 flag); void sf_set_mcu_sub_ver(unsigned char mcuSubVersion); void sf_set_mcu_ver(unsigned short mcuVersion); diff --git a/code/lib/source/sifar/code/source/mcu/sf_mcu_client.c b/code/lib/source/sifar/code/source/mcu/sf_mcu_client.c index 2856455a7..4c5fb0fcf 100644 --- a/code/lib/source/sifar/code/source/mcu/sf_mcu_client.c +++ b/code/lib/source/sifar/code/source/mcu/sf_mcu_client.c @@ -659,7 +659,7 @@ UINT8 sf_mcu_module_off(void) return SUCCESS; } -UINT8 sf_convert_power_on_mode(void) +UINT8 sf_cardv_convert_power_on_mode(void) { PowerOnMode &= 0x0f; //printf("[%s:%d]PowerOnMode=0x%x\n",__FUNCTION__,__LINE__,PowerOnMode); @@ -1963,7 +1963,7 @@ void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin) printf("%s:%d dailyHour:%d,dailyMin:%d\n", __FUNCTION__, __LINE__,*dailyHour,*dailyMin); printf("%s:%d TimerHstartT:%d,TimerMstartT:%d,TimerSstartT:%d\n", __FUNCTION__, __LINE__,puiPara->TimelapseTime.Hour,puiPara->TimelapseTime.Min,puiPara->TimelapseTime.Sec); //need check dailyReport & timelapse ? - if((sf_convert_power_on_mode() == PWR_ON_TIMELAPSE) || (sf_get_timelapse_change()) || (sf_get_mode_flag())) + if((sf_cardv_convert_power_on_mode() == PWR_ON_TIMELAPSE) || (sf_get_timelapse_change()) || (sf_get_mode_flag())) { //dailyHour = dailyHour + 60; daily_sum_min = (*dailyHour) * 60 + (*dailyMin);// + 60 + dailyMin diff --git a/rtos-main.bin b/rtos-main.bin new file mode 100755 index 000000000..0d5ace8eb Binary files /dev/null and b/rtos-main.bin differ diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/isp.dtsi b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/isp.dtsi index 8a15bbbec..48bd38ba9 100755 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/isp.dtsi +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/isp.dtsi @@ -27,4 +27,6 @@ #include "os05b10_ae_0.dtsi" #include "os05b10_awb_0.dtsi" #include "os05b10_iq_0.dtsi" +#include "os05b10_iq_0_cap.dtsi" +#include "os05b10_iq_0_vid.dtsi" 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 72531b7e9..899800943 100644 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -955,7 +955,7 @@ #define SF_EXIF_MN_BUF_SIZE 256 #define SF_BASE_VERSION "7MD4RCwD6T2" #define SF_TRIGGER_TIME_TEST DISABLE -#define SF_IQ_TEST ENABLE +#define SF_IQ_TEST DISABLE #define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE #define HW_S530 1 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 3a4ab6c53..d862496d4 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -194,8 +194,12 @@ static void MovieFast_ShutDown(void) #if HUNTING_CAMERA_MCU #if SF_IQ_TEST != ENABLE - fastboot_set_done(BOOT_FLOW_BOOT); + if(sf_get_power_off_flag()){ + sf_mcu_reg_set(SF_MCU_POWEROFF,0); + }else{ + fastboot_set_done(BOOT_FLOW_BOOT); flow_wait_linux(); + } #else sf_mcu_reg_set(SF_MCU_POWEROFF,0); #endif 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 2502647ae..427d305c9 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -1788,8 +1788,12 @@ static void PhotoFast_ShutDown(void) #if HUNTING_CAMERA_MCU == ENABLE #if SF_IQ_TEST != ENABLE - fastboot_set_done(BOOT_FLOW_BOOT); + if(sf_get_power_off_flag()){ + sf_mcu_reg_set(SF_MCU_POWEROFF,0); + }else{ + fastboot_set_done(BOOT_FLOW_BOOT); flow_wait_linux(); + } #else sf_mcu_reg_set(SF_MCU_POWEROFF,0); #endif