From c7a97085510e9613bf41bbbd0f6d70888fa6ddbb Mon Sep 17 00:00:00 2001 From: payton Date: Fri, 21 Jul 2023 11:11:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=9F=AD=E4=BF=A1=E6=8C=87=E4=BB=A4=E7=9A=84?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=202.=E6=A8=A1=E5=9D=97=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sf_app/code/include/sf_hal_ttyusb.h | 2 +- .../source/sf_app/code/include/sf_system.h | 1 + .../sf_app/code/source/4gMng/sf_eg91_sim.c | 25 ++++--- .../source/sf_app/code/source/4gMng/sf_sms.c | 24 +++---- .../source/sf_app/code/source/app/sf_common.c | 1 + .../source/sf_app/code/source/app/sf_system.c | 67 ++++++++++++------- 6 files changed, 72 insertions(+), 48 deletions(-) diff --git a/code/application/source/sf_app/code/include/sf_hal_ttyusb.h b/code/application/source/sf_app/code/include/sf_hal_ttyusb.h index 3406005f8..d746d8ad8 100644 --- a/code/application/source/sf_app/code/include/sf_hal_ttyusb.h +++ b/code/application/source/sf_app/code/include/sf_hal_ttyusb.h @@ -39,7 +39,7 @@ extern "C" { #define GPRS_MODULE_TYPE_EG95_V "EG95VX" #define GPRS_MODULE_TYPE_EG91_NAXD "EG91NAXD" #define GPRS_MODULE_TYPE_EG95_NAXD "EG95NAXD" - +#define GPRS_MODULE_TYPE_EG915Q "EG915Q" #define A_MODULE_APN "nxtgenphone" diff --git a/code/application/source/sf_app/code/include/sf_system.h b/code/application/source/sf_app/code/include/sf_system.h index aee8f5ff8..16eac7cdf 100644 --- a/code/application/source/sf_app/code/include/sf_system.h +++ b/code/application/source/sf_app/code/include/sf_system.h @@ -57,6 +57,7 @@ SINT32 sf_app_battery_stop(void); SINT32 sf_app_data_ready_start(void); void sf_cmd_4g_usb_boot(void); void sf_do_4g_upgrade_thread(void); +UINT32 sf_4g_update(UINT8 *upFname); #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index 4b8611905..248e5b8eb 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -2529,6 +2529,7 @@ SINT32 sf_module_complete_init(void) SF_ERROR("ErrorCode=0x%08x,Simcard Not Inserted.", ret); sf_set_sim_insert(0); sf_set_cq_signal(0); + memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid)); SLOGD("AT+QSIMSTAT? Timeout"); 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_set_sim_insert(0); sf_set_cq_signal(0); + memset(puiPara->SimIccid,'\0',sizeof(puiPara->SimIccid)); SLOGD("AT+QSIMSTAT? Timeout"); goto SF_MODULE_END; } @@ -3787,7 +3789,7 @@ SINT32 sf_auto_net_reg(void) { callTime++; - if(callTime >= 75) + //if(callTime >= 75) { ret = SF_SIM_ERROR_NO_SIMCARD; SLOGE(gsmPara); @@ -3800,9 +3802,9 @@ SINT32 sf_auto_net_reg(void) goto SF_MODULE_END; } - strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + //strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); + //ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); + //SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); break; } else if(strstr((const char *)gsmPara, "+QSIMSTAT: 0,1")) @@ -3815,7 +3817,12 @@ SINT32 sf_auto_net_reg(void) else { eNetRegLocation = QUECTEL_NETREG_QLWCFG_URC; - strcpy((char *)gsmPara, "AT+QLWCFG=\"startup\",0\r"); + 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"); + } } ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); @@ -3825,7 +3832,7 @@ SINT32 sf_auto_net_reg(void) { callTime++; - if(callTime >= 75) + //if(callTime >= 75) { ret = SF_SIM_ERROR_AT_TIMEOUT; SLOGE(gsmPara); @@ -3838,9 +3845,9 @@ SINT32 sf_auto_net_reg(void) goto SF_MODULE_END; } - strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + //strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); + //ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); + //SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); break; } else diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index f9d5496a7..7c0623e8f 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -41,7 +41,7 @@ #include #include "sf_fileMng.h" #include "sf_battery.h" - +#include "sf_system.h" /************************************************************************** * 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(strValue[i][0] - '0' == 0) + if(strValue[i][0] - '0' == 1) { 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; } @@ -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); 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 i++; @@ -2235,7 +2236,6 @@ void sf_video_list_print(void) fileCfg->filecnt += 1; pList = pList->pNext; 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 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/ - char *arg[3] = {0}; + 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) { return OTA_BATTERY_LOW; } - + sf_cmd_4g_usb_boot(); sf_set_module_update(1); sf_sleep_ms(1000); sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); 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_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); 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); } - + printf("[%s:%d] e\n", __FUNCTION__, __LINE__); return sts; } @@ -2476,7 +2472,7 @@ SINT32 sf_power_off_check_retset_para(void) //NeedSavePara = TRUE; CameraCmd.setPara = 0; - stMessageBuf.arg1 = SF_PARA_CMD_UPDATE; + stMessageBuf.arg1 = SF_PARA_CMD_RESET; stMessageBuf.cmdId = CMD_PARA; sf_com_message_send_to_cardv(&stMessageBuf); diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 72ebf1b0a..1dfe50099 100644 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -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_statistics_param_load(sf_statistics_param_get()); MLOGI("card-%d mount OK\r\n", pMessageBuf->arg2 + 1); + sf_set_key_fw_update(sf_get_fw_update()); break; case FST_STA_DISK_UNFORMAT: //sf_set_card(1); diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index b683815f4..59dafe286 100644 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -39,6 +39,8 @@ #include "sf_battery.h" #include "sf_common.h" #include "IOCfg.h" +#include +#include "sf_file.h" #ifdef __cplusplus #if __cplusplus extern "C" { @@ -665,10 +667,12 @@ SINT32 app_system_poweroff(SF_POWEROFF_TYPE_E enType ) system("killall qlog"); } #endif - if((puiPara->DebugMode) || (puiPara->QLogSwitch)){ - sync(); - } + //if((puiPara->DebugMode) || (puiPara->QLogSwitch)){ + // sync(); + //} + sync(); sf_mcu_reg_set(SF_MCU_POWEROFF,sf_poweroff_type_get()); + sync(); /* SF_STORE_ATTR_S storeattrs = {0}; 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__); } -static UINT32 sf_4g_update(void) +UINT32 sf_4g_update(UINT8 *upFname) { SF_CHAR cmdStr[128] = {0}; int ret = SF_FAILURE; 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++) { if (access("/dev/ttyACM0", F_OK) == SF_SUCCESS) { ret = SF_SUCCESS; @@ -1146,18 +1151,20 @@ static UINT32 sf_4g_update(void) break; } else { - usleep(100 * 1000); + //usleep(100 * 1000); + sf_sleep_ms(500); } } if (ret == SF_SUCCESS) { - ret = system(cmdStr); + ret = system(cmdStr); if (sf_poweron_type_get() == SF_MCU_STARTUP_RING) { sleep(2); } else { sleep(5); } + printf("[%s:%d] e %d\n", __FUNCTION__, __LINE__,ret); return ret; } 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) { //int s32Ret = 0; - + UINT8 updateFileName[60] = {0}; SLOGW("Begin to do 4G Upgrade!\n"); 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); } else{ - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); - sf_set_module_update(1); - //sf_set_send_statu(TRUE); - sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); - //BKG_PostEvent(NVTEVT_BKW_FW_UPDATE); - if(0 != sf_4g_update()){ - sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); + + 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_set_module_update(1); + //sf_set_send_statu(TRUE); + sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); + //BKG_PostEvent(NVTEVT_BKW_FW_UPDATE); + if(0 != sf_4g_update(updateFileName)){ + sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); + } + else { + //SysResetFlag(); + sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); + } + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); + // sf_set_send_statu(FALSE); + sf_set_module_update(0); + sf_sleep_ms(1000); + //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); } - else { - //SysResetFlag(); - } - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); - // sf_set_send_statu(FALSE); - sf_set_module_update(0); - sf_sleep_ms(1000); - //Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); + + } ModeuleUpgradeTskParam.IsRun = 2; @@ -1209,7 +1229,6 @@ void sf_do_4g_upgrade_thread(void) if(!ModeuleUpgradeTskParam.IsRun) { - sf_cmd_4g_usb_boot(); pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade, NULL); ModeuleUpgradeTskParam.IsRun = 1; }