1.优化读取到启动模式不相同时的处理

This commit is contained in:
payton 2023-09-07 14:07:41 +08:00
parent b1ec28e979
commit f60c8701ab
3 changed files with 45 additions and 12 deletions

View File

@ -63,6 +63,7 @@ SINT32 sf_app_load_ko_start(void);
SINT32 sf_app_mcu_para_start(void);
SINT32 app_auto_poweroff_start(void);
UINT8 sf_check_power_on_mode(void);
void sf_power_off_msg_to_cardv(void);
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -894,7 +894,6 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[])
*************************************************/
void sf_power_off(void)
{
SF_MESSAGE_BUF_S stMessageBuf = {0};
UINT8 PowerOnMode = sf_poweron_type_get();
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
if(SF_FAILURE == sf_check_sd())
@ -935,11 +934,7 @@ void sf_power_off(void)
sf_power_off_check_ui_para_sava();
sf_statistics_param_save(psfPara);
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
sf_power_off_msg_to_cardv();
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
}
pthread_cond_t condition;
@ -1481,4 +1476,22 @@ SINT32 sf_app_mcu_para_stop(void)
return ret;
}
return SF_SUCCESS;
}
/*************************************************
Function: sf_power_off_msg_to_cardv
Description: power off
Input: N/A
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_power_off_msg_to_cardv(void)
{
SF_MESSAGE_BUF_S stMessageBuf = {0};
SLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
}

View File

@ -30,7 +30,9 @@
#include <sf_device.h>
#include <sf_dev_usb.h>
#include "sf_common.h"
#include "sf_param_common.h"
#include "sf_sms.h"
#include "sf_system.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
@ -128,12 +130,15 @@ unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId)
{
unsigned char dataTemp1 = 0, dataTemp2 = 0;
unsigned char startMode = 0;
unsigned char startModetmp = sf_poweron_type_get();
int startflag = 1;
//unsigned char mcuVer = 0;
unsigned char mcuReg[REG_SIZE] = { 0 };
unsigned char mcuData[REG_SIZE] = { 0 };
unsigned char i = 0;
SF_TIME_S time;
SF_CHK_STARTMODE:
if(attrId == SF_MCU_STARTMODE)
{
sf_mcu_read(START_MODE, &dataTemp1);
@ -163,15 +168,29 @@ unsigned char sf_mcu_power_on_para_get (MCUParam_t attrId)
IRSHTTER = (dataTemp2 << 8) | dataTemp1;
}
if((startMode != startModetmp) && (startflag))
{
startflag = 0;
sf_sleep_ms(200);
goto SF_CHK_STARTMODE;
}
printf(" start mode = %d IRSHTTER = %d McuVersion:%d.%d.%d\n", startMode, IRSHTTER, (McuVersion>>8)&0xFF, McuVersion & 0xFF, McuSubVersion);
sf_mcu_rtc_get(&time);
if(SF_TRUE == sf_sys_rtc_time_check((SF_PARA_TIME_S*)&time)){
sf_sys_rtc_time_set((SF_PARA_TIME_S*)&time);
}else{
sf_sys_rtc_time_reset();
if(startMode == startModetmp)
{
if(SF_TRUE == sf_sys_rtc_time_check((SF_PARA_TIME_S*)&time)){
sf_sys_rtc_time_set((SF_PARA_TIME_S*)&time);
}else{
sf_sys_rtc_time_reset();
}
}
sf_poweron_type_set(startMode);
if(SF_MCU_STARTUP_ONKEY == startMode)
else
{
sf_power_off_msg_to_cardv();
}
//sf_poweron_type_set(startMode);
if(SF_MCU_STARTUP_ONKEY == startModetmp)
ConfigureModeFlag = 1;
//McuPowerOnMode = startMode;
return startMode;