1.短信指令的修复

2.模块升级
This commit is contained in:
payton 2023-07-21 11:11:57 +08:00
parent 38aec45f98
commit c7a9708551
6 changed files with 72 additions and 48 deletions

View File

@ -39,7 +39,7 @@ extern "C" {
#define GPRS_MODULE_TYPE_EG95_V "EG95VX" #define GPRS_MODULE_TYPE_EG95_V "EG95VX"
#define GPRS_MODULE_TYPE_EG91_NAXD "EG91NAXD" #define GPRS_MODULE_TYPE_EG91_NAXD "EG91NAXD"
#define GPRS_MODULE_TYPE_EG95_NAXD "EG95NAXD" #define GPRS_MODULE_TYPE_EG95_NAXD "EG95NAXD"
#define GPRS_MODULE_TYPE_EG915Q "EG915Q"
#define A_MODULE_APN "nxtgenphone" #define A_MODULE_APN "nxtgenphone"

View File

@ -57,6 +57,7 @@ SINT32 sf_app_battery_stop(void);
SINT32 sf_app_data_ready_start(void); SINT32 sf_app_data_ready_start(void);
void sf_cmd_4g_usb_boot(void); void sf_cmd_4g_usb_boot(void);
void sf_do_4g_upgrade_thread(void); void sf_do_4g_upgrade_thread(void);
UINT32 sf_4g_update(UINT8 *upFname);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -2529,6 +2529,7 @@ SINT32 sf_module_complete_init(void)
SF_ERROR("ErrorCode=0x%08x,Simcard Not Inserted.", ret); SF_ERROR("ErrorCode=0x%08x,Simcard Not Inserted.", ret);
sf_set_sim_insert(0); sf_set_sim_insert(0);
sf_set_cq_signal(0); sf_set_cq_signal(0);
memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid));
SLOGD("AT+QSIMSTAT? Timeout"); SLOGD("AT+QSIMSTAT? Timeout");
goto SF_MODULE_END; goto SF_MODULE_END;
} }
@ -2568,6 +2569,7 @@ SINT32 sf_module_complete_init(void)
SF_ERROR("ErrorCode=0x%08x,Unknown, before (U)SIM initialization.", ret); SF_ERROR("ErrorCode=0x%08x,Unknown, before (U)SIM initialization.", ret);
sf_set_sim_insert(0); sf_set_sim_insert(0);
sf_set_cq_signal(0); sf_set_cq_signal(0);
memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid));
SLOGD("AT+QSIMSTAT? Timeout"); SLOGD("AT+QSIMSTAT? Timeout");
goto SF_MODULE_END; goto SF_MODULE_END;
} }
@ -3787,7 +3789,7 @@ SINT32 sf_auto_net_reg(void)
{ {
callTime++; callTime++;
if(callTime >= 75) //if(callTime >= 75)
{ {
ret = SF_SIM_ERROR_NO_SIMCARD; ret = SF_SIM_ERROR_NO_SIMCARD;
SLOGE(gsmPara); SLOGE(gsmPara);
@ -3800,9 +3802,9 @@ SINT32 sf_auto_net_reg(void)
goto SF_MODULE_END; goto SF_MODULE_END;
} }
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); //strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); //ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); //SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break; break;
} }
else if(strstr((const char *)gsmPara, "+QSIMSTAT: 0,1")) else if(strstr((const char *)gsmPara, "+QSIMSTAT: 0,1"))
@ -3815,7 +3817,12 @@ SINT32 sf_auto_net_reg(void)
else else
{ {
eNetRegLocation = QUECTEL_NETREG_QLWCFG_URC; eNetRegLocation = QUECTEL_NETREG_QLWCFG_URC;
if(strstr(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q)){
strcpy((char *)gsmPara, "AT+QLWCFG=\"auto_reg\",0\r");
}
else{
strcpy((char *)gsmPara, "AT+QLWCFG=\"startup\",0\r"); strcpy((char *)gsmPara, "AT+QLWCFG=\"startup\",0\r");
}
} }
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
@ -3825,7 +3832,7 @@ SINT32 sf_auto_net_reg(void)
{ {
callTime++; callTime++;
if(callTime >= 75) //if(callTime >= 75)
{ {
ret = SF_SIM_ERROR_AT_TIMEOUT; ret = SF_SIM_ERROR_AT_TIMEOUT;
SLOGE(gsmPara); SLOGE(gsmPara);
@ -3838,9 +3845,9 @@ SINT32 sf_auto_net_reg(void)
goto SF_MODULE_END; goto SF_MODULE_END;
} }
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); //strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); //ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); //SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break; break;
} }
else else

View File

@ -41,7 +41,7 @@
#include <unistd.h> #include <unistd.h>
#include "sf_fileMng.h" #include "sf_fileMng.h"
#include "sf_battery.h" #include "sf_battery.h"
#include "sf_system.h"
/************************************************************************** /**************************************************************************
* C O N S T A N T S * * C O N S T A N T S *
**************************************************************************/ **************************************************************************/
@ -406,11 +406,11 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
if(strlen((const char *)strValue[i]) == 1) if(strlen((const char *)strValue[i]) == 1)
{ {
if(strValue[i][0] - '0' == 0) if(strValue[i][0] - '0' == 1)
{ {
pPara_sms_saved->FlashLed = SF_FLASH_LED_HIGH; pPara_sms_saved->FlashLed = SF_FLASH_LED_HIGH;
} }
else if(strValue[i][0] - '0' == 1) else if(strValue[i][0] - '0' == 2)
{ {
pPara_sms_saved->FlashLed = SF_FLASH_LED_LOW; pPara_sms_saved->FlashLed = SF_FLASH_LED_LOW;
} }
@ -505,6 +505,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
printf("Error Format line:%d i=%d\n", __LINE__, i); printf("Error Format line:%d i=%d\n", __LINE__, i);
Readmmsok = SMS_STATUS_FORMAT_ERR; Readmmsok = SMS_STATUS_FORMAT_ERR;
} }
SLOGW("WorkTime1:%d %d:%d-%d:%d\n", pPara_sms_saved->WorkTime1Switch, pPara_sms_saved->WorkTime[0].StartTime.Hour, pPara_sms_saved->WorkTime[0].StartTime.Min, pPara_sms_saved->WorkTime[0].StopTime.Hour ,pPara_sms_saved->WorkTime[0].StopTime.Min);
//sd //sd
i++; i++;
@ -2235,7 +2236,6 @@ void sf_video_list_print(void)
fileCfg->filecnt += 1; fileCfg->filecnt += 1;
pList = pList->pNext; pList = pList->pNext;
printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey); printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey);
pList = pList->pNext;
} }
} }
@ -2349,26 +2349,22 @@ SINT32 sf_power_off_module_ota(void)
UINT32 sf_4g_module_sd_usb_update(UINT8 *upFname) UINT32 sf_4g_module_sd_usb_update(UINT8 *upFname)
{ {
UINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/ UINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/
char *arg[3] = {0};
int ret = -1; int ret = -1;
printf("sf_4g_module_sd_usb_update s\n"); printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
if(sf_is_enough_power_to_update() == FALSE) if(sf_is_enough_power_to_update() == FALSE)
{ {
return OTA_BATTERY_LOW; return OTA_BATTERY_LOW;
} }
sf_cmd_4g_usb_boot();
sf_set_module_update(1); sf_set_module_update(1);
sf_sleep_ms(1000); sf_sleep_ms(1000);
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
arg[0] = "qFireUpd";
arg[1] = "-f";
arg[2] = (char *)upFname;
//ret = firehose_main_entry(3, arg);
ret = sf_4g_update(upFname);
sf_set_module_update(0); sf_set_module_update(0);
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
printf("sf_4g_module_sd_usb_update e ret=%d\n", ret); printf("sf_4g_module_sd_usb_update e ret=%d\n", ret);
@ -2386,7 +2382,7 @@ UINT32 sf_4g_module_sd_usb_update(UINT8 *upFname)
{ {
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
} }
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
return sts; return sts;
} }
@ -2476,7 +2472,7 @@ SINT32 sf_power_off_check_retset_para(void)
//NeedSavePara = TRUE; //NeedSavePara = TRUE;
CameraCmd.setPara = 0; CameraCmd.setPara = 0;
stMessageBuf.arg1 = SF_PARA_CMD_UPDATE; stMessageBuf.arg1 = SF_PARA_CMD_RESET;
stMessageBuf.cmdId = CMD_PARA; stMessageBuf.cmdId = CMD_PARA;
sf_com_message_send_to_cardv(&stMessageBuf); sf_com_message_send_to_cardv(&stMessageBuf);

View File

@ -578,6 +578,7 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_NORMAL); sf_sys_status_led_set(SF_LED_SYS_STATE_SD_NORMAL);
sf_statistics_param_load(sf_statistics_param_get()); sf_statistics_param_load(sf_statistics_param_get());
MLOGI("card-%d mount OK\r\n", pMessageBuf->arg2 + 1); MLOGI("card-%d mount OK\r\n", pMessageBuf->arg2 + 1);
sf_set_key_fw_update(sf_get_fw_update());
break; break;
case FST_STA_DISK_UNFORMAT: case FST_STA_DISK_UNFORMAT:
//sf_set_card(1); //sf_set_card(1);

View File

@ -39,6 +39,8 @@
#include "sf_battery.h" #include "sf_battery.h"
#include "sf_common.h" #include "sf_common.h"
#include "IOCfg.h" #include "IOCfg.h"
#include <dirent.h>
#include "sf_file.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { extern "C" {
@ -665,10 +667,12 @@ SINT32 app_system_poweroff(SF_POWEROFF_TYPE_E enType )
system("killall qlog"); system("killall qlog");
} }
#endif #endif
if((puiPara->DebugMode) || (puiPara->QLogSwitch)){ //if((puiPara->DebugMode) || (puiPara->QLogSwitch)){
// sync();
//}
sync(); sync();
}
sf_mcu_reg_set(SF_MCU_POWEROFF,sf_poweroff_type_get()); sf_mcu_reg_set(SF_MCU_POWEROFF,sf_poweroff_type_get());
sync();
/* /*
SF_STORE_ATTR_S storeattrs = {0}; SF_STORE_ATTR_S storeattrs = {0};
SF_STARTUP_TYPE_E startup = SF_MCU_STARTUP_ONKEY; SF_STARTUP_TYPE_E startup = SF_MCU_STARTUP_ONKEY;
@ -1132,13 +1136,14 @@ void sf_cmd_4g_usb_boot(void)
printf("[%s:%d] e\n", __FUNCTION__, __LINE__); printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
} }
static UINT32 sf_4g_update(void) UINT32 sf_4g_update(UINT8 *upFname)
{ {
SF_CHAR cmdStr[128] = {0}; SF_CHAR cmdStr[128] = {0};
int ret = SF_FAILURE; int ret = SF_FAILURE;
printf("[%s:%d] s\n", __FUNCTION__, __LINE__); printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sprintf(cmdStr, "/usr/bin/DownloadCLI -p /dev/ttyACM0 -c /mnt/sd/EG915Q/cfg_ec618_usb.ini -B \"BL AP CP\" -r"); sprintf(cmdStr, "/usr/bin/DownloadCLI -p /dev/ttyACM0 -c %s/cfg_ec618_usb.ini -B \"BL AP CP\" -r", upFname);
printf("[%s:%d] cmd:%s\n", __FUNCTION__, __LINE__,cmdStr);
for (UINT8 i = 0; i < 40; i++) { for (UINT8 i = 0; i < 40; i++) {
if (access("/dev/ttyACM0", F_OK) == SF_SUCCESS) { if (access("/dev/ttyACM0", F_OK) == SF_SUCCESS) {
ret = SF_SUCCESS; ret = SF_SUCCESS;
@ -1146,7 +1151,8 @@ static UINT32 sf_4g_update(void)
break; break;
} }
else { else {
usleep(100 * 1000); //usleep(100 * 1000);
sf_sleep_ms(500);
} }
} }
@ -1158,6 +1164,7 @@ static UINT32 sf_4g_update(void)
else { else {
sleep(5); sleep(5);
} }
printf("[%s:%d] e %d\n", __FUNCTION__, __LINE__,ret);
return ret; return ret;
} }
printf("[%s:%d] e\n", __FUNCTION__, __LINE__); printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
@ -1166,7 +1173,7 @@ static UINT32 sf_4g_update(void)
void* sf_sys_do_4g_upgrade(void *arg) void* sf_sys_do_4g_upgrade(void *arg)
{ {
//int s32Ret = 0; //int s32Ret = 0;
UINT8 updateFileName[60] = {0};
SLOGW("Begin to do 4G Upgrade!\n"); SLOGW("Begin to do 4G Upgrade!\n");
if(sf_is_enough_power_to_update() == FALSE) if(sf_is_enough_power_to_update() == FALSE)
@ -1174,22 +1181,35 @@ void* sf_sys_do_4g_upgrade(void *arg)
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
} }
else{ else{
if(sf_is_4g_module_usb_update_file_exist(updateFileName))
{
sf_cmd_4g_usb_boot();
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
sf_set_module_update(1); sf_set_module_update(1);
//sf_set_send_statu(TRUE); //sf_set_send_statu(TRUE);
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE); //BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
if(0 != sf_4g_update()){ if(0 != sf_4g_update(updateFileName)){
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
} }
else { else {
//SysResetFlag(); //SysResetFlag();
sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL);
} }
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
// sf_set_send_statu(FALSE); // sf_set_send_statu(FALSE);
sf_set_module_update(0); sf_set_module_update(0);
sf_sleep_ms(1000); sf_sleep_ms(1000);
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0);
sf_set_power_off_flag(1);
SF_MESSAGE_BUF_S stMessageBuf = {0};
stMessageBuf.cmdId = CMD_POWEROFF;
stMessageBuf.arg1 = APP_POWER_OFF_NORMAL;
sf_com_message_send_to_cardv(&stMessageBuf);
}
} }
ModeuleUpgradeTskParam.IsRun = 2; ModeuleUpgradeTskParam.IsRun = 2;
@ -1209,7 +1229,6 @@ void sf_do_4g_upgrade_thread(void)
if(!ModeuleUpgradeTskParam.IsRun) if(!ModeuleUpgradeTskParam.IsRun)
{ {
sf_cmd_4g_usb_boot();
pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade, NULL); pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade, NULL);
ModeuleUpgradeTskParam.IsRun = 1; ModeuleUpgradeTskParam.IsRun = 1;
} }