From fcf604c606421fdb13d729bf1da3ec1d81114187 Mon Sep 17 00:00:00 2001 From: xiaojiazhu <258828110@qq.com> Date: Thu, 17 Aug 2023 19:30:04 +0800 Subject: [PATCH] 1.Fix CAM_INFO.TXT file no ModuleVER bug and write failed bug. 2.Improve at command error handle way. --- code/application/sifarsdk | 2 +- .../source/sf_app/code/include/sf_service.h | 2 +- .../sf_app/code/source/4gMng/sf_eg91_sim.c | 32 +++++++++---------- .../sf_app/code/source/app/sf_service.c | 15 +++++---- .../sifar/code/source/common/sf_common.c | 3 +- 5 files changed, 28 insertions(+), 26 deletions(-) diff --git a/code/application/sifarsdk b/code/application/sifarsdk index 6cda096a7..4fab386ee 160000 --- a/code/application/sifarsdk +++ b/code/application/sifarsdk @@ -1 +1 @@ -Subproject commit 6cda096a723e0e0c52bc302ddd1a60f47a07c40f +Subproject commit 4fab386ee16f4716fba25bb439f17cd360a7135d diff --git a/code/application/source/sf_app/code/include/sf_service.h b/code/application/source/sf_app/code/include/sf_service.h index f8c2e89e8..ed930acc1 100755 --- a/code/application/source/sf_app/code/include/sf_service.h +++ b/code/application/source/sf_app/code/include/sf_service.h @@ -59,7 +59,7 @@ int sf_check_eth0(void); int sf_check_usb0(void); void serach_gps_onkey_start(void); -void open_gps(const SINT32 utc); +SINT32 open_gps(const SINT32 utc); int get_gps_location(void); void keep_get_gps_location(const SF_GPS_PARAM param); void keep_seraching_gps_location(const int timeout_ms); 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 69811f3fd..c54053f05 100755 --- 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 @@ -2216,7 +2216,7 @@ SINT32 eg91_register_net_manual(SF_FN_PARAM_S *pfnParam) Return: 0 SUCCESS, 1 error Others: N/A *************************************************/ -void sf_quectel_module_subver_change(char *pTemp) +void sf_quectel_module_subver_change(char *pTemp, const char *keyword) { //EUROPE: EG91EXGAR08A07M1G_20.002.20.002 //AMERICA: EG91NAXDGAR07A01M1G_20.005.20.005 @@ -2228,13 +2228,7 @@ void sf_quectel_module_subver_change(char *pTemp) UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - pT1 = strstr((const char *)pTemp, "FAR"); - - if(pT1 == NULL) - { - pT1 = strstr((const char *)pTemp, "GAR"); - } - + pT1 = strstr((const char *)pTemp, keyword); pT2 = strstr((const char *)pTemp, "BETA"); pT3 = strstr((const char *)pTemp, "_"); @@ -2488,19 +2482,23 @@ SINT32 sf_module_complete_init(void) if(strstr((const char *)gsmPara, "OK")) { - pTemp = strstr((const char *)gsmPara, EG91); - - if(pTemp != NULL) - { - sf_quectel_module_subver_change(pTemp); - SLOGI(puiPara->ModuleSubver); - } - - if(SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){ + if(SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){ + pTemp = strstr((const char *)gsmPara, GPRS_MODULE_TYPE_EG915Q); + if(pTemp != NULL) + { + sf_quectel_module_subver_change(pTemp, "LGR"); + SLOGI(puiPara->ModuleSubver); + } eNetRegLocation = QUECTEL_NETREG_QSIMDET; strcpy((char *)gsmPara, "AT+QSIMDET=0,1\r"); } else{ + pTemp = strstr((const char *)gsmPara, GPRS_MODULE_TYPE_EG91); + if(pTemp != NULL) + { + sf_quectel_module_subver_change(pTemp, "GAR"); + SLOGI(puiPara->ModuleSubver); + } eNetRegLocation = QUECTEL_NETREG_QSIMSTAT; strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); } diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 3210f8cf2..34700da2e 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -1301,7 +1301,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) { sf_4G_usb_net_apn_cfg(pfnParam); sf_USB_net_init(); if ((SF_ON == pCustomerParam->GpsSwitch)) { - open_gps(s32ret); + s32ret = open_gps(s32ret); serach_gps_onkey_start(); } @@ -1438,7 +1438,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) { s32ret = sf_get_ntp(s32ret, ¤t_time); } if ((SF_ON == pCustomerParam->GpsSwitch)) { - open_gps(s32ret); + s32ret = open_gps(s32ret); } if (1 == pCustomerParam->NeedTimeSyncStartUp) { printf("[%s:%d]8 between A and B,no reg net again,no reset time sync.\n", @@ -1484,7 +1484,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) { s32ret = sf_get_ntp(s32ret, ¤t_time); } if ((SF_ON == pCustomerParam->GpsSwitch)) { - open_gps(s32ret); + s32ret = open_gps(s32ret); } if (0 != sf_get_cq_signal()) { @@ -1761,7 +1761,7 @@ int sf_check_usb0(void) return 0; } -void open_gps(const SINT32 utc) +SINT32 open_gps(const SINT32 utc) { UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get(); SINT32 s32ret = 0; @@ -1773,7 +1773,11 @@ void open_gps(const SINT32 utc) current_time.Year, current_time.Mon, current_time.Day, current_time.Hour, current_time.Min, current_time.Sec); gps_map_update(pCustomerParam->Sim4gApn, pCustomerParam->Sim4gUsr, pCustomerParam->Sim4gPwd, ntp_time); - gps_open(ntp_time); + if (AT_MANAGER_SUCCEED == gps_open(ntp_time)) + { + return SF_SUCCESS; + } + return SF_FAILURE; } #define GPS_GET_SUCCEED 0 #define GPS_GET_FAILED -1 @@ -1842,7 +1846,6 @@ static void *serach_gps_onkey_thread(void *param) SF_GPS_PARAM gps_param; gps_param.timeout_ms = SERACH_GPS_TIMEOUT_MS; gps_param.period_ms = SERACH_PERIOD_MS; - // open_gps(); keep_get_gps_location(gps_param); return NULL; } diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index afb53979c..a985cd116 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -2301,7 +2301,7 @@ void sf_save_camera_info(void) if(access((char*)SF_CAMERA_INFO_FILENAME, F_OK) == 0) { system("rm -rf /mnt/sd/CAM_INFO.TXT"); - sync(); + system("sync"); //FileSys_DeleteFile(); } fd = open(SF_CAMERA_INFO_FILENAME, O_WRONLY | O_CREAT); @@ -2310,6 +2310,7 @@ void sf_save_camera_info(void) lseek(fd, 0, SEEK_END); write(fd, temp, strlen(temp)); close(fd); + system("sync"); } free(temp);