Created
June 2, 2021 05:51
-
-
Save artyLee/ad6a65daca37681910150569524e1d39 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/hal/network/ncp_client/quectel/quectel_ncp_client.cpp b/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
index 5d00e50eb..51b8aec6a 100644 | |
--- a/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
+++ b/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
@@ -630,8 +630,8 @@ int QuectelNcpClient::getCellularGlobalIdentity(CellularGlobalIdentity* cgi) { | |
// Fill in LAC and Cell ID based on current RAT, prefer PSD and EPS | |
// fallback to CSD | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
switch (cgi->version) | |
{ | |
@@ -1003,7 +1003,7 @@ int QuectelNcpClient::initReady(ModemState state) { | |
// int r = CHECK_PARSER(parser_.execCommand("AT+COPS=2")); | |
// CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
- if (ncpId() == PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() == PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
// Force eDRX mode to be disabled. | |
CHECK_PARSER(parser_.execCommand("AT+CEDRXS=0")); | |
@@ -1215,10 +1215,10 @@ int QuectelNcpClient::registerNet() { | |
resetRegistrationState(); | |
// Register GPRS, LET, NB-IOT network | |
- r = CHECK_PARSER(parser_.execCommand("AT+CREG=2")); | |
- CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
- r = CHECK_PARSER(parser_.execCommand("AT+CGREG=2")); | |
- CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
+ // r = CHECK_PARSER(parser_.execCommand("AT+CREG=2")); | |
+ // CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
+ // r = CHECK_PARSER(parser_.execCommand("AT+CGREG=2")); | |
+ // CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
r = CHECK_PARSER(parser_.execCommand("AT+CEREG=2")); | |
CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
@@ -1239,7 +1239,7 @@ int QuectelNcpClient::registerNet() { | |
// CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
} | |
- if (ncpId() == PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() == PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
// FIXME: Force Cat M1-only mode, do we need to do it on Quectel NCP? | |
// Set to scan LTE only if not already set, take effect immediately | |
auto respNwMode = parser_.sendCommand("AT+QCFG=\"nwscanmode\""); | |
@@ -1265,8 +1265,8 @@ int QuectelNcpClient::registerNet() { | |
} | |
} | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
regStartTime_ = millis(); | |
@@ -1506,7 +1506,7 @@ int QuectelNcpClient::interveneRegistration() { | |
auto timeout = (registrationInterventions_ + 1) * REGISTRATION_INTERVENTION_TIMEOUT; | |
// Intervention to speed up registration or recover in case of failure | |
- if (ncpId() != PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() != PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
if (eps_.sticky() && eps_.duration() >= timeout) { | |
if (eps_.status() == CellularRegistrationStatus::NOT_REGISTERING && csd_.status() == eps_.status()) { | |
LOG(TRACE, "Sticky not registering state for %lu s, PLMN reselection", eps_.duration() / 1000); | |
@@ -1601,8 +1601,8 @@ int QuectelNcpClient::processEventsImpl() { | |
// Check GPRS, LET, NB-IOT network registration status | |
CHECK_PARSER(parser_.execCommand("AT+CEER")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
if (connState_ == NcpConnectionState::CONNECTING && millis() - regStartTime_ >= registrationTimeout_) { | |
diff --git a/hal/shared/platform_ncp.h b/hal/shared/platform_ncp.h | |
index 192e03fed..1bf1b0a60 100644 | |
--- a/hal/shared/platform_ncp.h | |
+++ b/hal/shared/platform_ncp.h | |
@@ -45,6 +45,7 @@ enum PlatformNCPIdentifier { | |
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2), | |
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3), | |
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4), | |
+ PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6), | |
PLATFORM_NCP_BROADCOM_BCM9WCDUSI09 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 1), | |
PLATFORM_NCP_BROADCOM_BCM9WCDUSI14 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 2) | |
}; | |
diff --git a/hal/network/ncp_client/quectel/quectel_ncp_client.cpp b/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
index 5d00e50eb..51b8aec6a 100644 | |
--- a/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
+++ b/hal/network/ncp_client/quectel/quectel_ncp_client.cpp | |
@@ -630,8 +630,8 @@ int QuectelNcpClient::getCellularGlobalIdentity(CellularGlobalIdentity* cgi) { | |
// Fill in LAC and Cell ID based on current RAT, prefer PSD and EPS | |
// fallback to CSD | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
switch (cgi->version) | |
{ | |
@@ -1003,7 +1003,7 @@ int QuectelNcpClient::initReady(ModemState state) { | |
// int r = CHECK_PARSER(parser_.execCommand("AT+COPS=2")); | |
// CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
- if (ncpId() == PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() == PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
// Force eDRX mode to be disabled. | |
CHECK_PARSER(parser_.execCommand("AT+CEDRXS=0")); | |
@@ -1215,10 +1215,10 @@ int QuectelNcpClient::registerNet() { | |
resetRegistrationState(); | |
// Register GPRS, LET, NB-IOT network | |
- r = CHECK_PARSER(parser_.execCommand("AT+CREG=2")); | |
- CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
- r = CHECK_PARSER(parser_.execCommand("AT+CGREG=2")); | |
- CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
+ // r = CHECK_PARSER(parser_.execCommand("AT+CREG=2")); | |
+ // CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
+ // r = CHECK_PARSER(parser_.execCommand("AT+CGREG=2")); | |
+ // CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
r = CHECK_PARSER(parser_.execCommand("AT+CEREG=2")); | |
CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
@@ -1239,7 +1239,7 @@ int QuectelNcpClient::registerNet() { | |
// CHECK_TRUE(r == AtResponse::OK, SYSTEM_ERROR_UNKNOWN); | |
} | |
- if (ncpId() == PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() == PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
// FIXME: Force Cat M1-only mode, do we need to do it on Quectel NCP? | |
// Set to scan LTE only if not already set, take effect immediately | |
auto respNwMode = parser_.sendCommand("AT+QCFG=\"nwscanmode\""); | |
@@ -1265,8 +1265,8 @@ int QuectelNcpClient::registerNet() { | |
} | |
} | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
regStartTime_ = millis(); | |
@@ -1506,7 +1506,7 @@ int QuectelNcpClient::interveneRegistration() { | |
auto timeout = (registrationInterventions_ + 1) * REGISTRATION_INTERVENTION_TIMEOUT; | |
// Intervention to speed up registration or recover in case of failure | |
- if (ncpId() != PLATFORM_NCP_QUECTEL_BG96) { | |
+ if (ncpId() != PLATFORM_NCP_QUECTEL_BG96 || ncpId() == PLATFORM_NCP_QUECTEL_BG77) { | |
if (eps_.sticky() && eps_.duration() >= timeout) { | |
if (eps_.status() == CellularRegistrationStatus::NOT_REGISTERING && csd_.status() == eps_.status()) { | |
LOG(TRACE, "Sticky not registering state for %lu s, PLMN reselection", eps_.duration() / 1000); | |
@@ -1601,8 +1601,8 @@ int QuectelNcpClient::processEventsImpl() { | |
// Check GPRS, LET, NB-IOT network registration status | |
CHECK_PARSER(parser_.execCommand("AT+CEER")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
- CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CREG?")); | |
+ // CHECK_PARSER_OK(parser_.execCommand("AT+CGREG?")); | |
CHECK_PARSER_OK(parser_.execCommand("AT+CEREG?")); | |
if (connState_ == NcpConnectionState::CONNECTING && millis() - regStartTime_ >= registrationTimeout_) { | |
diff --git a/hal/shared/platform_ncp.h b/hal/shared/platform_ncp.h | |
index 192e03fed..1bf1b0a60 100644 | |
--- a/hal/shared/platform_ncp.h | |
+++ b/hal/shared/platform_ncp.h | |
@@ -45,6 +45,7 @@ enum PlatformNCPIdentifier { | |
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2), | |
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3), | |
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4), | |
+ PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6), | |
PLATFORM_NCP_BROADCOM_BCM9WCDUSI09 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 1), | |
PLATFORM_NCP_BROADCOM_BCM9WCDUSI14 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 2) | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment