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 sf_app_mcu_para_start(void);
SINT32 app_auto_poweroff_start(void); SINT32 app_auto_poweroff_start(void);
UINT8 sf_check_power_on_mode(void); UINT8 sf_check_power_on_mode(void);
void sf_power_off_msg_to_cardv(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -894,7 +894,6 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[])
*************************************************/ *************************************************/
void sf_power_off(void) void sf_power_off(void)
{ {
SF_MESSAGE_BUF_S stMessageBuf = {0};
UINT8 PowerOnMode = sf_poweron_type_get(); UINT8 PowerOnMode = sf_poweron_type_get();
printf("[%s:%d] s\n", __FUNCTION__, __LINE__); printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
if(SF_FAILURE == sf_check_sd()) if(SF_FAILURE == sf_check_sd())
@ -935,11 +934,7 @@ void sf_power_off(void)
sf_power_off_check_ui_para_sava(); sf_power_off_check_ui_para_sava();
sf_statistics_param_save(psfPara); sf_statistics_param_save(psfPara);
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n"); sf_power_off_msg_to_cardv();
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);
printf("[%s:%d] e\n", __FUNCTION__, __LINE__); printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
pthread_cond_t condition; pthread_cond_t condition;
@ -1481,4 +1476,22 @@ SINT32 sf_app_mcu_para_stop(void)
return ret; return ret;
} }
return SF_SUCCESS; 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_device.h>
#include <sf_dev_usb.h> #include <sf_dev_usb.h>
#include "sf_common.h" #include "sf_common.h"
#include "sf_param_common.h"
#include "sf_sms.h" #include "sf_sms.h"
#include "sf_system.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { 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 dataTemp1 = 0, dataTemp2 = 0;
unsigned char startMode = 0; unsigned char startMode = 0;
unsigned char startModetmp = sf_poweron_type_get();
int startflag = 1;
//unsigned char mcuVer = 0; //unsigned char mcuVer = 0;
unsigned char mcuReg[REG_SIZE] = { 0 }; unsigned char mcuReg[REG_SIZE] = { 0 };
unsigned char mcuData[REG_SIZE] = { 0 }; unsigned char mcuData[REG_SIZE] = { 0 };
unsigned char i = 0; unsigned char i = 0;
SF_TIME_S time; SF_TIME_S time;
SF_CHK_STARTMODE:
if(attrId == SF_MCU_STARTMODE) if(attrId == SF_MCU_STARTMODE)
{ {
sf_mcu_read(START_MODE, &dataTemp1); 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; 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); printf(" start mode = %d IRSHTTER = %d McuVersion:%d.%d.%d\n", startMode, IRSHTTER, (McuVersion>>8)&0xFF, McuVersion & 0xFF, McuSubVersion);
sf_mcu_rtc_get(&time); sf_mcu_rtc_get(&time);
if(SF_TRUE == sf_sys_rtc_time_check((SF_PARA_TIME_S*)&time)){ if(startMode == startModetmp)
sf_sys_rtc_time_set((SF_PARA_TIME_S*)&time); {
}else{ if(SF_TRUE == sf_sys_rtc_time_check((SF_PARA_TIME_S*)&time)){
sf_sys_rtc_time_reset(); sf_sys_rtc_time_set((SF_PARA_TIME_S*)&time);
}else{
sf_sys_rtc_time_reset();
}
} }
sf_poweron_type_set(startMode); else
if(SF_MCU_STARTUP_ONKEY == startMode) {
sf_power_off_msg_to_cardv();
}
//sf_poweron_type_set(startMode);
if(SF_MCU_STARTUP_ONKEY == startModetmp)
ConfigureModeFlag = 1; ConfigureModeFlag = 1;
//McuPowerOnMode = startMode; //McuPowerOnMode = startMode;
return startMode; return startMode;