diff --git a/code/application/source/cardv/SrcCode/System/main.c b/code/application/source/cardv/SrcCode/System/main.c index 2fa671971..5869ed1cb 100755 --- a/code/application/source/cardv/SrcCode/System/main.c +++ b/code/application/source/cardv/SrcCode/System/main.c @@ -377,6 +377,10 @@ int NvtMain(void) sf_cardv_para_check_start(); SF_MESSAGE_BUF_S stMessageBuf = {0}; + if(!sf_gpio_get_status(GPIO_KEY_TEST)){ + sf_set_fw_update(1);//update + } + stMessageBuf.arg1 = SF_MCU_CMD_POWERON; stMessageBuf.cmdId = CMD_MCU; sf_com_message_send_to_app(&stMessageBuf); 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 a4f984d7b..dbf613bf3 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 @@ -1289,6 +1289,9 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) { sf_rtsp_restart(); } + if((1 == sf_get_fw_update())){ + sf_do_upgrade_thread();//update + } #endif break; diff --git a/code/application/source/sf_app/code/include/sf_common.h b/code/application/source/sf_app/code/include/sf_common.h index dba807694..568bd2234 100644 --- a/code/application/source/sf_app/code/include/sf_common.h +++ b/code/application/source/sf_app/code/include/sf_common.h @@ -81,6 +81,8 @@ void sf_set_module_update(UINT8 flag); UINT8 sf_get_fw_update(void); void sf_set_fw_update(UINT8 flag); UINT8 sf_app_get_night_led_flag(void); + +void sf_set_key_fw_update(UINT8 flag); #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 42b66ac29..439f17bc0 100644 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -79,7 +79,7 @@ void sf_set_module_update(UINT8 flag) SF_MESSAGE_BUF_S stMessageBuf = {0}; if(ModuleUpdating != flag) { - stMessageBuf.arg1 = flag; + stMessageBuf.arg2 = flag; stMessageBuf.arg1 = SF_PARA_CMD_MOUP; stMessageBuf.cmdId = CMD_PARA; sf_com_message_send_to_cardv(&stMessageBuf); @@ -98,13 +98,25 @@ void sf_set_fw_update(UINT8 flag) if(FwUpdate != flag) { - stMessageBuf.arg1 = flag; + stMessageBuf.arg2 = flag; stMessageBuf.arg1 = SF_PARA_CMD_FWUP; stMessageBuf.cmdId = CMD_PARA; sf_com_message_send_to_cardv(&stMessageBuf); } FwUpdate = flag; } +void sf_set_key_fw_update(UINT8 flag) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + + if(1 == flag) + { + stMessageBuf.arg2 = flag; + stMessageBuf.arg1 = SF_EVENT_KEY_TEST; + stMessageBuf.cmdId = CMD_KEY; + sf_com_message_send_to_cardv(&stMessageBuf); + } +} const SF_CHAR* app_process_SD_getstatusstring(SF_MESSAGE_CMD_SD_E enType) { @@ -711,7 +723,7 @@ static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) case SF_MCU_CMD_POWERON: sf_get_power_on_mode(); stMessageBuf.arg1 = SF_MCU_CMD_POWERON; - stMessageBuf.arg2 = (SINT32)sf_convert_power_on_mode(); + stMessageBuf.arg2 = (SINT32)sf_poweron_type_get(); stMessageBuf.arg3 = (SINT32)sf_mcu_get_irshtter(); stMessageBuf.cmdId = CMD_MCU; sf_com_message_send_to_cardv(&stMessageBuf); @@ -744,10 +756,11 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) sf_share_mem_customer_update(); break; case SF_PARA_CMD_FWUP: - ModuleUpdating = pMessageBuf->arg2; + FwUpdate = pMessageBuf->arg2; + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, FwUpdate); break; case SF_PARA_CMD_MOUP: - FwUpdate = pMessageBuf->arg2; + ModuleUpdating = pMessageBuf->arg2; break; case SF_PARA_CMD_IR_LED_STATUS: IsNightLedOn = pMessageBuf->arg2; 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 8fa0f14ee..7d392edaf 100644 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -170,117 +170,117 @@ void sf_mode_detect(void) if(sf_get_mode_flag()) { - //printf("PIR:%d,state:%d\n", sf_pir_statu_read(),state); - if(sf_pir_statu_read() != state) - { - state = sf_pir_statu_read(); - //printf("PIR_STATE_READ:%d\n", state); - if(((!sf_get_pir_statu_flag()) && (AutoOfftime < 185))) - { - if(!state) - { - if(pirDelay == 0) - { - sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_DETECT); - pirDelay++; - } - } - else - { - sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT); - } - } - } - - if(pirDelay) - { - pirDelay++; - - if(pirDelay >= 10) - { - pirDelay = 0; - } - } - } - - time++; - - if(time<10) - return; - - time=0; - - if((sf_get_pir_statu_flag()) && (gpio_getPin(GPIO_KEY_TEST))) - { - pwroffcnt++; - //printf("[%s:%d]pwroffcnt=%d\n",__FUNCTION__,__LINE__,pwroffcnt); - //sf_enter_auto_mode_count_down_show(4 - pwroffcnt); - - if(pwroffcnt == 1) - { - //sf_enter_auto_mode_show(3); - if(!countDownOffFlg) - sf_sys_status_led_set(SF_LED_SYS_STATE_GOING_TO_PIR); - } - else if(pwroffcnt == 6) - { - //LCD_BACKLIGHT_OFF; - sf_check_card_full(); - sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF); - printf("[power off] %s(%d) AutoOfftime:%d\n", __FUNCTION__, __LINE__, AutoOfftime); - if(AutoOfftime >= 185) - { - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); //shutdown start - } - else - { - #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_NORMAL); //shutdown start - #elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); //shutdown start - #endif + //printf("PIR:%d,state:%d\n", sf_pir_statu_read(),state); + if(sf_pir_statu_read() != state) + { + state = sf_pir_statu_read(); + //printf("PIR_STATE_READ:%d\n", state); + if(((!sf_get_pir_statu_flag()) && (AutoOfftime < 185))) + { + if(!state) + { + if(pirDelay == 0) + { + sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_DETECT); + pirDelay++; + } + } + else + { + sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT); + } } - sf_set_power_off_flag(1); - } - } - else - { - pwroffcnt = 0; - } + } - if(puiPara->AutoOffSwitch == 0 || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/) - { - AutoOfftime=0; - } - - if(((System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO)&& (gPhotoData.State == PHOTO_ST_VIEW)) - || ((System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_MOVIE) && (FlowMovie_GetMovDataState() == MOV_ST_VIEW))) - { - //printf("----AutoOfftime=%d\n",AutoOfftime); - if(AutoOfftime<185) - { - AutoOfftime++; + if(pirDelay) + { + pirDelay++; + + if(pirDelay >= 10) + { + pirDelay = 0; + } + } - if(countDownOffFlg) - { - countDownOffFlg = 0; - - if(!sf_get_pir_statu_flag()) - sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR); - } - } - else if(AutoOfftime == 185) - { - sf_set_pir_statu_flag(TRUE); - countDownOffFlg = 1; - } - } - else - { - AutoOfftime=0; - } + time++; + + if(time<10) + return; + + time=0; - + if((sf_get_pir_statu_flag()) && (gpio_getPin(GPIO_KEY_TEST))) + { + pwroffcnt++; + //printf("[%s:%d]pwroffcnt=%d\n",__FUNCTION__,__LINE__,pwroffcnt); + //sf_enter_auto_mode_count_down_show(4 - pwroffcnt); + + if(pwroffcnt == 1) + { + //sf_enter_auto_mode_show(3); + if(!countDownOffFlg) + sf_sys_status_led_set(SF_LED_SYS_STATE_GOING_TO_PIR); + } + else if(pwroffcnt == 6) + { + //LCD_BACKLIGHT_OFF; + sf_check_card_full(); + sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF); + printf("[power off] %s(%d) AutoOfftime:%d\n", __FUNCTION__, __LINE__, AutoOfftime); + if(AutoOfftime >= 185) + { + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); //shutdown start + } + else + { + #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_NORMAL); //shutdown start + #elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); //shutdown start + #endif + } + sf_set_power_off_flag(1); + } + } + else + { + pwroffcnt = 0; + } + + if(puiPara->AutoOffSwitch == 0 || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/) + { + AutoOfftime=0; + } + + //if(((System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PHOTO)&& (gPhotoData.State == PHOTO_ST_VIEW)) + // || ((System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_MOVIE) && (FlowMovie_GetMovDataState() == MOV_ST_VIEW))) + if(sf_is_preview()) + { + //printf("----AutoOfftime=%d\n",AutoOfftime); + if(AutoOfftime<185) + { + AutoOfftime++; + + if(countDownOffFlg) + { + countDownOffFlg = 0; + + if(!sf_get_pir_statu_flag()) + sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR); + } + } + else if(AutoOfftime == 185) + { + sf_set_pir_statu_flag(TRUE); + countDownOffFlg = 1; + } + } + else + { + AutoOfftime=0; + } + + } //printf("[%s:%d] e\n", __FUNCTION__, __LINE__); } UINT8 sf_get_module_update(void) @@ -293,7 +293,7 @@ void sf_set_module_update(UINT8 flag) SF_MESSAGE_BUF_S stMessageBuf = {0}; if(ModuleUpdating != flag) { - stMessageBuf.arg1 = flag; + stMessageBuf.arg2 = flag; stMessageBuf.arg1 = SF_PARA_CMD_MOUP; stMessageBuf.cmdId = CMD_PARA; sf_com_message_send_to_app(&stMessageBuf); @@ -311,7 +311,7 @@ void sf_set_fw_update(UINT8 flag) SF_MESSAGE_BUF_S stMessageBuf = {0}; if(FwUpdate != flag) { - stMessageBuf.arg1 = flag; + stMessageBuf.arg2 = flag; stMessageBuf.arg1 = SF_PARA_CMD_FWUP; stMessageBuf.cmdId = CMD_PARA; sf_com_message_send_to_app(&stMessageBuf); @@ -1226,7 +1226,7 @@ UINT32 sf_set_pir_sensitivity(UINT8 pirs) puiPara->DigitPirSensitivity = digPirLevel[pirs]; puiPara->DigitPirCnt = digPirCount[pirs]; puiPara->DigitPirWindowTime = 0; - #if SF_IS_RELEASE == ENABLE + //#if SF_IS_RELEASE == ENABLE if(puiPara->PirSensitivity) { puiPara->TimelapseSwitch = SF_OFF; @@ -1235,7 +1235,7 @@ UINT32 sf_set_pir_sensitivity(UINT8 pirs) puiPara->TimelapseTime.Sec = 0; //Save_MenuInfo(); } - #endif + //#endif return SUCCESS; } @@ -1600,7 +1600,7 @@ static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) sf_set_mcu_sub_ver(pMessageBuf->arg2); sf_set_mcu_ver(pMessageBuf->arg3); - if((sf_get_mode_flag()) && (0 == wifistart)) + if((0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (0 == wifistart)) { wifistart = 1; GOIO_Turn_Onoff_IRCUT(1); @@ -1638,6 +1638,9 @@ static SINT32 sf_cardv_proccess_cmd_key(SF_MESSAGE_BUF_S *pMessageBuf) Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start } break; + case SF_EVENT_KEY_TEST: + sf_do_upgrade_thread();//update + break; default: break; @@ -1661,10 +1664,10 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) Reset_MenuInfo(); break; case SF_PARA_CMD_FWUP: - ModuleUpdating = pMessageBuf->arg2; + FwUpdate = pMessageBuf->arg2; break; case SF_PARA_CMD_MOUP: - FwUpdate = pMessageBuf->arg2; + ModuleUpdating = pMessageBuf->arg2; break; case SF_PARA_CMD_NET_STATUS: NetWorkFlag = pMessageBuf->arg2; @@ -1729,7 +1732,7 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf) UI_SetData(FL_PreMode, iCurrMode); UI_SetData(FL_NextMode, iNextMode); Ux_PostEvent(NVTEVT_SYSTEM_MODE, 1, iNextMode); - vos_util_delay_ms(200); + vos_util_delay_ms(400); } } @@ -1937,24 +1940,24 @@ void sf_cardv_message_thread_init(void) void sf_set_menu_open(BOOL is) { IsMenu = is; - printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu); + //printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu); } BOOL sf_is_menu_open(void) { - printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu); + //printf("[%s]:%d IsMenu:%d\n", __FUNCTION__, __LINE__, IsMenu); return IsMenu; } void sf_set_cap_statu(BOOL is) { IsCap = is; - printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap); + //printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap); } BOOL sf_get_cap_statu(void) { - printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap); + //printf("[%s]:%d IsCap:%d\n", __FUNCTION__, __LINE__,IsCap); return IsCap; } @@ -2107,14 +2110,17 @@ void* sf_sys_do_upgrade(void *arg) sf_set_fw_update(1); sf_set_send_statu(TRUE); sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); //BKG_PostEvent(NVTEVT_BKW_FW_UPDATE); if(0 != sf_fwupdate()){ sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); } - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); + else { + SysResetFlag(); + } sf_set_send_statu(FALSE); sf_set_fw_update(0); + vos_util_delay_ms(1000); + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); } UpgradeTskParam.IsRun = 2;