1.调整升级后mcu整机重启

This commit is contained in:
payton 2024-01-29 14:14:35 +08:00
parent dde2efee23
commit e24a164ac4
8 changed files with 69 additions and 24 deletions

View File

@ -519,10 +519,6 @@ void Load_MenuInfo(void)
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
sf_power_on_para_check_init(); sf_power_on_para_check_init();
Save_MenuInfo(); Save_MenuInfo();
if(!sf_is_usb_flag())
{
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
}
#endif #endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
//origInfo = currentInfo; //origInfo = currentInfo;

View File

@ -63,7 +63,7 @@ UINT8 sf_signal_level_get(UINT8 netFlagG, UINT8 cqSignal);
BOOL sf_get_para_check_flag(void); BOOL sf_get_para_check_flag(void);
void sf_sys_check_flag(void); void sf_sys_check_flag(void);
BOOL sf_Check_OTA(void); BOOL sf_check_ota(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -531,6 +531,7 @@ typedef enum _SF_DEV_CMD_STEP_e{
SF_DEV_CMD_OTA = 0x6, SF_DEV_CMD_OTA = 0x6,
SF_DEV_CMD_BLU_START = 0x7, SF_DEV_CMD_BLU_START = 0x7,
SF_DEV_CMD_ESIM_OPERATION_SELECT_RESP = 0x8, SF_DEV_CMD_ESIM_OPERATION_SELECT_RESP = 0x8,
SF_DEV_CMD_LPA,
SF_DEV_CMD_BUTT SF_DEV_CMD_BUTT
} SF_DEV_CMD_STEP_e; } SF_DEV_CMD_STEP_e;

View File

@ -67,6 +67,7 @@ void sf_power_off_msg_to_cardv(void);
SINT32 sf_app_mcu_para_power_no_start(void); SINT32 sf_app_mcu_para_power_no_start(void);
SINT32 sf_app_mcu_updata_start(void); SINT32 sf_app_mcu_updata_start(void);
UINT8 sf_app_get_mcu_init_flag(void); UINT8 sf_app_get_mcu_init_flag(void);
SINT32 sf_app_lpa_start(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -1207,7 +1207,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
{ {
if((strValue[i][4] - '0') == 1) if((strValue[i][4] - '0') == 1)
{ {
CameraCmd.cameraRestart = 1; sf_cmd_camera_restart(1);
Readmmsok = SMS_STATUS_RECIEV; Readmmsok = SMS_STATUS_RECIEV;
} }
else else
@ -2493,7 +2493,7 @@ SINT32 sf_power_off_module_ota(void)
{ {
if(app_ttyusb_IsOpen() != SUCCESS) if(app_ttyusb_IsOpen() != SUCCESS)
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
else else
{ {
@ -2573,7 +2573,7 @@ SINT32 sf_power_off_module_sd_update(void)
{ {
if(app_ttyusb_IsOpen() != SUCCESS) if(app_ttyusb_IsOpen() != SUCCESS)
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
else else
{ {
@ -2828,7 +2828,7 @@ SINT32 sf_power_off_check_gprs(void)
} }
else else
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
} }
} }
@ -2855,14 +2855,13 @@ SINT32 sf_power_off_check_fw_update(void)
if(app_ttyusb_IsOpen() != SUCCESS) if(app_ttyusb_IsOpen() != SUCCESS)
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
else else
{ {
if(sf_camera_ota_ftp() == SUCCESS) if(sf_camera_ota_ftp() == SUCCESS)
{ {
CameraCmd.setPara = 0; CameraCmd.setPara = 0;
CameraCmd.cameraRestart = 1;
} }
else else
{ {
@ -2876,7 +2875,7 @@ SINT32 sf_power_off_check_fw_update(void)
} }
else else
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
} }
} }
@ -2912,7 +2911,7 @@ SINT32 sf_power_off_check_module_sleep(void)
{ {
if(app_ttyusb_IsOpen() != SUCCESS) if(app_ttyusb_IsOpen() != SUCCESS)
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
else else
{ {
@ -2924,7 +2923,7 @@ SINT32 sf_power_off_check_module_sleep(void)
{ {
if(app_ttyusb_IsOpen() != SUCCESS) if(app_ttyusb_IsOpen() != SUCCESS)
{ {
CameraCmd.cameraRestart = 1; //usb error,need restart sf_cmd_camera_restart(1);//usb error,need restart
} }
else else
{ {

View File

@ -989,7 +989,9 @@ static SINT32 sf_app_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
sf_blue_app_start(); sf_blue_app_start();
} }
break; break;
case SF_DEV_CMD_LPA:
sf_app_lpa_start();
break;
default: default:
break; break;
} }

View File

@ -54,6 +54,9 @@ static SINT32 AutoPowerOffTime = 0;
static SINT32 sfusbstatus = 0; static SINT32 sfusbstatus = 0;
extern SF_PARA_TIME_S rtcTime; extern SF_PARA_TIME_S rtcTime;
pthread_cond_t condition;
extern pthread_mutex_t Param_mutexLock;
int shared_condition = 1;
SINT32 bUpdateEnble = 0; SINT32 bUpdateEnble = 0;
SINT32 s32ThreeWaySwitch = 0; SINT32 s32ThreeWaySwitch = 0;
@ -146,6 +149,13 @@ SF_THREAD_S PowerOffTskCfg =
.IsRun = 0, .IsRun = 0,
.TskId = -1, .TskId = -1,
}; };
SF_THREAD_S LpaTskCfg =
{
.IsRun = 0,
.TskId = -1,
};
SINT8 debugFlag = 0; SINT8 debugFlag = 0;
UINT8 McuInitFlag = 0; UINT8 McuInitFlag = 0;
@ -956,9 +966,6 @@ void sf_power_off(void)
sf_power_off_msg_to_cardv(); sf_power_off_msg_to_cardv();
printf("[%s:%d] e\n", __FUNCTION__, __LINE__); printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
pthread_cond_t condition;
extern pthread_mutex_t Param_mutexLock;
int shared_condition = 1;
void* sf_para_signaling_thread(void* arg) void* sf_para_signaling_thread(void* arg)
{ {
@ -1422,9 +1429,10 @@ UINT8 sf_check_power_on_mode(void)
FILE *fp = NULL; FILE *fp = NULL;
UINT32 u32ize = 0; UINT32 u32ize = 0;
char *pStrSrc = NULL; char *pStrSrc = NULL;
char *pStrOtsOk = "Mode="; char *pStrMode = "Mode=";
char *pStrUpFw = "UpFw="; char *pStrUpFw = "UpFw=";
char *pStrUpMcu = "mcu="; char *pStrUpMcu = "mcu=";
char *pStrOtsOk = "ota_flag=0x1";
char *temp = NULL; char *temp = NULL;
UINT8 startup = 0; UINT8 startup = 0;
@ -1443,7 +1451,7 @@ UINT8 sf_check_power_on_mode(void)
pStrSrc = (char *)malloc(u32ize*sizeof(char)); pStrSrc = (char *)malloc(u32ize*sizeof(char));
if (pStrSrc) { if (pStrSrc) {
fread(pStrSrc, 1, u32ize, fp); fread(pStrSrc, 1, u32ize, fp);
temp = strstr(pStrSrc, pStrOtsOk); temp = strstr(pStrSrc, pStrMode);
if ( temp != NULL) { if ( temp != NULL) {
temp += strlen("Mode="); temp += strlen("Mode=");
sscanf(temp, "%hhd", &startup); sscanf(temp, "%hhd", &startup);
@ -1463,7 +1471,12 @@ UINT8 sf_check_power_on_mode(void)
sscanf(temp, "%hhd", &Upmcu); sscanf(temp, "%hhd", &Upmcu);
sf_set_mcu_update_flag(Upmcu); sf_set_mcu_update_flag(Upmcu);
} }
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d\r\n", startup, UpFw, Upmcu); temp = strstr(pStrSrc, pStrOtsOk);
if ( temp != NULL) {
SLOGI(": ota upgrade success\r\n");
sf_cmd_camera_restart(1);
}
SLOGI("StartMode=%d,UpFw=%d Upmcu=%d ota=%d\r\n", startup, UpFw, Upmcu, sf_get_camera_restart());
free(pStrSrc); free(pStrSrc);
} }
@ -1486,6 +1499,10 @@ void* sf_app_mcu_para_thread(void *arg)
if((SF_MCU_STARTUP_NORMAL != sf_poweron_type_get()) && (!isUsb)){ if((SF_MCU_STARTUP_NORMAL != sf_poweron_type_get()) && (!isUsb)){
sf_get_power_on_mode(); sf_get_power_on_mode();
sf_mcu_wdg_set(5); sf_mcu_wdg_set(5);
if(sf_get_camera_restart())
{
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
}
} }
McuInitFlag = 1; McuInitFlag = 1;
McuParaTskCfg.IsRun = 0; McuParaTskCfg.IsRun = 0;
@ -1715,3 +1732,32 @@ SINT32 sf_app_mcu_updata_start(void)
} }
void* sf_lpa_thread(void *arg)
{
SLOGI("thread run\n");
sf_poweroff_check_lpa_excute_cmd();
sf_poweroff_check_lpa_enable_profile();
LpaTskCfg.IsRun = 0;
SLOGI("thread end\n");
return NULL;
}
SINT32 sf_app_lpa_start(void)
{
SINT32 ret = SF_FAILURE;
if(LpaTskCfg.IsRun)
{
SLOGE("thread has already run !!!\n");
return SF_FAILURE;
}
LpaTskCfg.IsRun = 1;
SLOGI("thread run\n");
ret = pthread_create(&LpaTskCfg.TskId, NULL, sf_lpa_thread, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread creat fail!\n");
return ret;
}
return SF_SUCCESS;
}

View File

@ -88,7 +88,7 @@ void sf_sys_check_flag(void)
#endif #endif
} }
BOOL sf_Check_OTA(void) BOOL sf_check_ota(void)
{ {
FILE *fp = NULL; FILE *fp = NULL;
UINT32 u32ize = 0; UINT32 u32ize = 0;
@ -96,8 +96,8 @@ BOOL sf_Check_OTA(void)
char *pStrOtsOk = "ota_flag=0x1"; char *pStrOtsOk = "ota_flag=0x1";
BOOL ret = FALSE; BOOL ret = FALSE;
system("cat /proc/cmdline > /tmp/sf_ota.txt"); system("cat /proc/cmdline > /tmp/ota.txt");
fp = fopen("/tmp/sf_ota.txt","r"); fp = fopen("/tmp/ota.txt","r");
if(fp == NULL){ if(fp == NULL){
return FALSE; return FALSE;
} }