1.开机按teset键升级功能

2.修复一些消息交互错误问题
3.修复超时关机问题
4.修改pir设置
5.修复get CAPTURE模式切换太短未完成即拍摄问题
This commit is contained in:
payton 2023-07-11 14:30:20 +08:00
parent 2d4ecca1b3
commit 6fa4fa0f3a
5 changed files with 154 additions and 126 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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
}

View File

@ -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;

View File

@ -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;