diff --git a/code/application/source/sf_app/code/include/sf_eg91_sim.h b/code/application/source/sf_app/code/include/sf_eg91_sim.h index f90497a10..b52b28fa8 100755 --- a/code/application/source/sf_app/code/include/sf_eg91_sim.h +++ b/code/application/source/sf_app/code/include/sf_eg91_sim.h @@ -17,7 +17,7 @@ extern "C" { //500ms * 480 = 240s = 4min #define SF_QUECTEL_NET_REG_CALLTIME_MAX 480 #define SF_MODULE_RESET_WAIT_TIME 30 - +#define SF_MODULE_CGREG_TIME_S 90 #define SF_NTP_SITE1 "time.windows.com" #define SF_NTP_SITE2 "time.nist.gov" 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 f2f0330f7..ecedf8cc0 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 @@ -2724,12 +2724,15 @@ SINT32 sf_module_complete_init(void) break; case QUECTEL_NETREG_DBGCTL: - eNetRegLocation = QUECTEL_NETREG_QCFG_NTP; - strcpy((char *)gsmPara, "AT+QCFG=\"ntp\",3,5\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - callTime = 0; - ttyData.len = strlen(gsmPara) + 2; + if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK")) + { + eNetRegLocation = QUECTEL_NETREG_QCFG_NTP; + strcpy((char *)gsmPara, "AT+QCFG=\"ntp\",3,5\r"); + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + callTime = 0; + ttyData.len = strlen(gsmPara) + 2; + } break; case QUECTEL_NETREG_QCFG_NTP: @@ -2882,14 +2885,17 @@ SINT32 sf_module_complete_init(void) case QUECTEL_NETREG_CPIN: if(SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){ - eNetRegLocation = QUECTEL_NETREG_READY; - strcpy((char *)gsmPara, "AT+CPIN?\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - ttyData.len = strlen(gsmPara) + 2; + if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK")) + { + eNetRegLocation = QUECTEL_NETREG_READY; + strcpy((char *)gsmPara, "AT+CPIN?\r"); + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; + } } else{ - if(strstr((const char *)gsmPara, "OK")) + if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK")) { eNetRegLocation = QUECTEL_NETREG_READY; strcpy((char *)gsmPara, "AT+CPIN?\r"); @@ -3183,7 +3189,9 @@ SINT32 sf_net_regist_manual(void) { SINT32 ret = SF_SUCCESS; - + SINT64 cTime = 0; + SINT64 eTime = 0; + double elapsed_time = 0; //UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0}; SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST; UINT16 callTime = 0; @@ -3420,7 +3428,6 @@ SINT32 sf_net_regist_manual(void) //sprintf((char *)gsmPara, "AT+RSTSET\r"); //sprintf((char *)gsmPara, "AT+CGREG?\r"); //eNetRegLocation = QUECTEL_NETREG_CGREG; - //callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ sprintf((char *)gsmPara, "%s", "AT+CGDCONT=1,\"IPV4V6\",\"\"\r"); eNetRegLocation = QUECTEL_NETREG_CGDCONT; } @@ -3433,7 +3440,7 @@ SINT32 sf_net_regist_manual(void) { sprintf((char *)gsmPara, "AT+CGREG?\r"); eNetRegLocation = QUECTEL_NETREG_CGREG; - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ + sf_time(&cTime); } else if(strstr((const char *)puiPara->Sim4gApn, APN_4G_ATT)) { @@ -3484,7 +3491,6 @@ SINT32 sf_net_regist_manual(void) eNetRegLocation = QUECTEL_NETREG_FRIST; //sprintf((char *)gsmPara, "AT+CGREG?\r"); //eNetRegLocation = QUECTEL_NETREG_CGREG; - //callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; } else { @@ -3498,11 +3504,11 @@ SINT32 sf_net_regist_manual(void) if(strstr((const char *)gsmPara, "OK")) { eNetRegLocation = QUECTEL_NETREG_CGREG; + sf_time(&cTime); strcpy((char *)gsmPara, "AT+CGREG?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ ttyData.cmp = "OK"; ttyData.len = strlen(gsmPara) + 2; } @@ -3544,14 +3550,18 @@ SINT32 sf_net_regist_manual(void) } else { - callTime--; + //callTime--; sprintf((char *)gsmPara, "AT+CGREG?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); sf_sleep_ms(300); - - if(callTime == 0) + // time + sf_time(&eTime); + elapsed_time = difftime(eTime, cTime); + // s + //printf("time: %.2f s\n", elapsed_time); + if(elapsed_time > SF_MODULE_CGREG_TIME_S) { if((strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN1)) || (strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN2))) { @@ -3608,7 +3618,6 @@ SINT32 sf_net_regist_manual(void) } } - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ #if MEGA_TEST if(puiPara->MegaTestSwitch == 1) @@ -3627,6 +3636,7 @@ SINT32 sf_net_regist_manual(void) { printf("[%s:%d]:puiPara->OperatorCode:%s,new cimi:%s\n", __FUNCTION__, __LINE__, puiPara->OperatorCode, SimImei); eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg. + sf_time(&cTime); sprintf((char *)gsmPara, "AT+CGREG?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); @@ -3984,6 +3994,9 @@ SINT32 sf_net_regist_manual(void) SINT32 sf_auto_net_reg(void) { SINT32 ret = SF_SUCCESS; + SINT64 cTime = 0; + SINT64 eTime = 0; + double elapsed_time = 0; //UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0}; SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST; UINT16 callTime = 0; @@ -4070,6 +4083,7 @@ SINT32 sf_auto_net_reg(void) { eNetRegLocation = QUECTEL_NETREG_CGREG; strcpy((char *)gsmPara, "AT+CGREG?\r"); + sf_time(&cTime); } else { @@ -4151,9 +4165,9 @@ SINT32 sf_auto_net_reg(void) if(strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON)) { - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ eNetRegLocation = QUECTEL_NETREG_CGREG; strcpy((char *)gsmPara, "AT+CGREG?\r"); + sf_time(&cTime); } else if(strstr((const char *)puiPara->Sim4gApn, APN_4G_ATT)) { @@ -4177,11 +4191,11 @@ SINT32 sf_auto_net_reg(void) if(strstr((const char *)gsmPara, "OK")) { eNetRegLocation = QUECTEL_NETREG_CGREG; + sf_time(&cTime); strcpy((char *)gsmPara, "AT+CGREG?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ ttyData.cmp = "OK"; ttyData.len = strlen(gsmPara) + 2; } @@ -4215,7 +4229,11 @@ SINT32 sf_auto_net_reg(void) sf_sleep_ms(300); - if(callTime == 0) + sf_time(&eTime); + elapsed_time = difftime(eTime, cTime); + // s + //printf("time: %.2f s\n", elapsed_time); + if(elapsed_time > SF_MODULE_CGREG_TIME_S) { if((strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN1)) || (strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN2))) { @@ -4274,7 +4292,6 @@ SINT32 sf_auto_net_reg(void) } } - callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ #if MEGA_TEST if(puiPara->MegaTestSwitch == 1) @@ -4293,6 +4310,7 @@ SINT32 sf_auto_net_reg(void) { printf("[%s:%d]:puiPara->OperatorCode:%s,new cimi:%s\n", __FUNCTION__, __LINE__, puiPara->OperatorCode, SimImei); eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg. + sf_time(&cTime); sprintf((char *)gsmPara, "AT+CGREG?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);