1.注网时间改90s;2.优化模块初始化代码

This commit is contained in:
payton 2023-11-22 18:07:19 +08:00
parent 6a303efec9
commit 4847a8db9a
2 changed files with 44 additions and 26 deletions

View File

@ -17,7 +17,7 @@ extern "C" {
//500ms * 480 = 240s = 4min //500ms * 480 = 240s = 4min
#define SF_QUECTEL_NET_REG_CALLTIME_MAX 480 #define SF_QUECTEL_NET_REG_CALLTIME_MAX 480
#define SF_MODULE_RESET_WAIT_TIME 30 #define SF_MODULE_RESET_WAIT_TIME 30
#define SF_MODULE_CGREG_TIME_S 90
#define SF_NTP_SITE1 "time.windows.com" #define SF_NTP_SITE1 "time.windows.com"
#define SF_NTP_SITE2 "time.nist.gov" #define SF_NTP_SITE2 "time.nist.gov"

View File

@ -2724,12 +2724,15 @@ SINT32 sf_module_complete_init(void)
break; break;
case QUECTEL_NETREG_DBGCTL: case QUECTEL_NETREG_DBGCTL:
eNetRegLocation = QUECTEL_NETREG_QCFG_NTP; if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK"))
strcpy((char *)gsmPara, "AT+QCFG=\"ntp\",3,5\r"); {
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); eNetRegLocation = QUECTEL_NETREG_QCFG_NTP;
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); strcpy((char *)gsmPara, "AT+QCFG=\"ntp\",3,5\r");
callTime = 0; ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
ttyData.len = strlen(gsmPara) + 2; SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
callTime = 0;
ttyData.len = strlen(gsmPara) + 2;
}
break; break;
case QUECTEL_NETREG_QCFG_NTP: case QUECTEL_NETREG_QCFG_NTP:
@ -2882,14 +2885,17 @@ SINT32 sf_module_complete_init(void)
case QUECTEL_NETREG_CPIN: case QUECTEL_NETREG_CPIN:
if(SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){ if(SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){
eNetRegLocation = QUECTEL_NETREG_READY; if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK"))
strcpy((char *)gsmPara, "AT+CPIN?\r"); {
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); eNetRegLocation = QUECTEL_NETREG_READY;
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); strcpy((char *)gsmPara, "AT+CPIN?\r");
ttyData.len = strlen(gsmPara) + 2; ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
ttyData.len = strlen(gsmPara) + 2;
}
} }
else{ else{
if(strstr((const char *)gsmPara, "OK")) if(strstr((const char *)gsmPara, "ERROR") || strstr((const char *)gsmPara, "OK"))
{ {
eNetRegLocation = QUECTEL_NETREG_READY; eNetRegLocation = QUECTEL_NETREG_READY;
strcpy((char *)gsmPara, "AT+CPIN?\r"); strcpy((char *)gsmPara, "AT+CPIN?\r");
@ -3183,7 +3189,9 @@ SINT32 sf_net_regist_manual(void)
{ {
SINT32 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT64 cTime = 0;
SINT64 eTime = 0;
double elapsed_time = 0;
//UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0}; //UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0};
SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST; SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST;
UINT16 callTime = 0; UINT16 callTime = 0;
@ -3420,7 +3428,6 @@ SINT32 sf_net_regist_manual(void)
//sprintf((char *)gsmPara, "AT+RSTSET\r"); //sprintf((char *)gsmPara, "AT+RSTSET\r");
//sprintf((char *)gsmPara, "AT+CGREG?\r"); //sprintf((char *)gsmPara, "AT+CGREG?\r");
//eNetRegLocation = QUECTEL_NETREG_CGREG; //eNetRegLocation = QUECTEL_NETREG_CGREG;
//callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
sprintf((char *)gsmPara, "%s", "AT+CGDCONT=1,\"IPV4V6\",\"\"\r"); sprintf((char *)gsmPara, "%s", "AT+CGDCONT=1,\"IPV4V6\",\"\"\r");
eNetRegLocation = QUECTEL_NETREG_CGDCONT; eNetRegLocation = QUECTEL_NETREG_CGDCONT;
} }
@ -3433,7 +3440,7 @@ SINT32 sf_net_regist_manual(void)
{ {
sprintf((char *)gsmPara, "AT+CGREG?\r"); sprintf((char *)gsmPara, "AT+CGREG?\r");
eNetRegLocation = QUECTEL_NETREG_CGREG; 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)) else if(strstr((const char *)puiPara->Sim4gApn, APN_4G_ATT))
{ {
@ -3484,7 +3491,6 @@ SINT32 sf_net_regist_manual(void)
eNetRegLocation = QUECTEL_NETREG_FRIST; eNetRegLocation = QUECTEL_NETREG_FRIST;
//sprintf((char *)gsmPara, "AT+CGREG?\r"); //sprintf((char *)gsmPara, "AT+CGREG?\r");
//eNetRegLocation = QUECTEL_NETREG_CGREG; //eNetRegLocation = QUECTEL_NETREG_CGREG;
//callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX;
} }
else else
{ {
@ -3498,11 +3504,11 @@ SINT32 sf_net_regist_manual(void)
if(strstr((const char *)gsmPara, "OK")) if(strstr((const char *)gsmPara, "OK"))
{ {
eNetRegLocation = QUECTEL_NETREG_CGREG; eNetRegLocation = QUECTEL_NETREG_CGREG;
sf_time(&cTime);
strcpy((char *)gsmPara, "AT+CGREG?\r"); strcpy((char *)gsmPara, "AT+CGREG?\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);
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
ttyData.cmp = "OK"; ttyData.cmp = "OK";
ttyData.len = strlen(gsmPara) + 2; ttyData.len = strlen(gsmPara) + 2;
} }
@ -3544,14 +3550,18 @@ SINT32 sf_net_regist_manual(void)
} }
else else
{ {
callTime--; //callTime--;
sprintf((char *)gsmPara, "AT+CGREG?\r"); sprintf((char *)gsmPara, "AT+CGREG?\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);
sf_sleep_ms(300); sf_sleep_ms(300);
// time
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))) 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 MEGA_TEST
if(puiPara->MegaTestSwitch == 1) 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); printf("[%s:%d]:puiPara->OperatorCode:%s,new cimi:%s\n", __FUNCTION__, __LINE__, puiPara->OperatorCode, SimImei);
eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg. eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg.
sf_time(&cTime);
sprintf((char *)gsmPara, "AT+CGREG?\r"); sprintf((char *)gsmPara, "AT+CGREG?\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);
@ -3984,6 +3994,9 @@ SINT32 sf_net_regist_manual(void)
SINT32 sf_auto_net_reg(void) SINT32 sf_auto_net_reg(void)
{ {
SINT32 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT64 cTime = 0;
SINT64 eTime = 0;
double elapsed_time = 0;
//UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0}; //UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0};
SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST; SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST;
UINT16 callTime = 0; UINT16 callTime = 0;
@ -4070,6 +4083,7 @@ SINT32 sf_auto_net_reg(void)
{ {
eNetRegLocation = QUECTEL_NETREG_CGREG; eNetRegLocation = QUECTEL_NETREG_CGREG;
strcpy((char *)gsmPara, "AT+CGREG?\r"); strcpy((char *)gsmPara, "AT+CGREG?\r");
sf_time(&cTime);
} }
else else
{ {
@ -4151,9 +4165,9 @@ SINT32 sf_auto_net_reg(void)
if(strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON)) if(strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON))
{ {
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
eNetRegLocation = QUECTEL_NETREG_CGREG; eNetRegLocation = QUECTEL_NETREG_CGREG;
strcpy((char *)gsmPara, "AT+CGREG?\r"); strcpy((char *)gsmPara, "AT+CGREG?\r");
sf_time(&cTime);
} }
else if(strstr((const char *)puiPara->Sim4gApn, APN_4G_ATT)) 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")) if(strstr((const char *)gsmPara, "OK"))
{ {
eNetRegLocation = QUECTEL_NETREG_CGREG; eNetRegLocation = QUECTEL_NETREG_CGREG;
sf_time(&cTime);
strcpy((char *)gsmPara, "AT+CGREG?\r"); strcpy((char *)gsmPara, "AT+CGREG?\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);
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
ttyData.cmp = "OK"; ttyData.cmp = "OK";
ttyData.len = strlen(gsmPara) + 2; ttyData.len = strlen(gsmPara) + 2;
} }
@ -4215,7 +4229,11 @@ SINT32 sf_auto_net_reg(void)
sf_sleep_ms(300); 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))) 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 MEGA_TEST
if(puiPara->MegaTestSwitch == 1) 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); printf("[%s:%d]:puiPara->OperatorCode:%s,new cimi:%s\n", __FUNCTION__, __LINE__, puiPara->OperatorCode, SimImei);
eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg. eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg.
sf_time(&cTime);
sprintf((char *)gsmPara, "AT+CGREG?\r"); sprintf((char *)gsmPara, "AT+CGREG?\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);