Deactivate contexts on Monarch
Signed-off-by: Sara Damiano <sdamiano@stroudcenter.org>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -24,6 +24,7 @@ extra_envs.ini
|
|||||||
lib/readme.txt
|
lib/readme.txt
|
||||||
include/readme.txt
|
include/readme.txt
|
||||||
.atomrc.cson
|
.atomrc.cson
|
||||||
|
.history
|
||||||
|
|
||||||
# VSCode
|
# VSCode
|
||||||
.vscode/*
|
.vscode/*
|
||||||
|
@@ -383,7 +383,7 @@ class TinyGsmSim800 : public TinyGsmModem<TinyGsmSim800>,
|
|||||||
sendAT(GF("+CIPSHUT"));
|
sendAT(GF("+CIPSHUT"));
|
||||||
if (waitResponse(60000L) != 1) { return false; }
|
if (waitResponse(60000L) != 1) { return false; }
|
||||||
|
|
||||||
sendAT(GF("+CGATT=0")); // Deactivate the bearer context
|
sendAT(GF("+CGATT=0")); // Detach from GPRS
|
||||||
if (waitResponse(60000L) != 1) { return false; }
|
if (waitResponse(60000L) != 1) { return false; }
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -396,9 +396,7 @@ class TinyGsmSim800 : public TinyGsmModem<TinyGsmSim800>,
|
|||||||
// May not return the "+CCID" before the number
|
// May not return the "+CCID" before the number
|
||||||
String getSimCCIDImpl() {
|
String getSimCCIDImpl() {
|
||||||
sendAT(GF("+CCID"));
|
sendAT(GF("+CCID"));
|
||||||
if (waitResponse(GF(GSM_NL)) != 1) {
|
if (waitResponse(GF(GSM_NL)) != 1) { return ""; }
|
||||||
return "";
|
|
||||||
}
|
|
||||||
String res = stream.readStringUntil('\n');
|
String res = stream.readStringUntil('\n');
|
||||||
waitResponse();
|
waitResponse();
|
||||||
// Trim out the CCID header in case it is there
|
// Trim out the CCID header in case it is there
|
||||||
@@ -739,7 +737,7 @@ class TinyGsmSim800 : public TinyGsmModem<TinyGsmSim800>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientSim800* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientSim800* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -367,8 +367,12 @@ class TinyGsmSequansMonarch
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool gprsDisconnectImpl() {
|
bool gprsDisconnectImpl() {
|
||||||
|
// Detach from PS network
|
||||||
sendAT(GF("+CGATT=0"));
|
sendAT(GF("+CGATT=0"));
|
||||||
if (waitResponse(60000L) != 1) { return false; }
|
if (waitResponse(60000L) != 1) { return false; }
|
||||||
|
// Dectivate all PDP contexts
|
||||||
|
sendAT(GF("+CGACT=0"));
|
||||||
|
if (waitResponse(60000L) != 1) { return false; }
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -572,9 +576,7 @@ class TinyGsmSequansMonarch
|
|||||||
// six possible sockets.
|
// six possible sockets.
|
||||||
sendAT(GF("+SQNSS"));
|
sendAT(GF("+SQNSS"));
|
||||||
for (int muxNo = 1; muxNo <= TINY_GSM_MUX_COUNT; muxNo++) {
|
for (int muxNo = 1; muxNo <= TINY_GSM_MUX_COUNT; muxNo++) {
|
||||||
if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSS: ")) != 2) {
|
if (waitResponse(GFP(GSM_OK), GF(GSM_NL "+SQNSS: ")) != 2) { break; }
|
||||||
break;
|
|
||||||
}
|
|
||||||
uint8_t status = 0;
|
uint8_t status = 0;
|
||||||
// if (streamGetIntBefore(',') != muxNo) { // check the mux no
|
// if (streamGetIntBefore(',') != muxNo) { // check the mux no
|
||||||
// DBG("### Warning: misaligned mux numbers!");
|
// DBG("### Warning: misaligned mux numbers!");
|
||||||
@@ -593,9 +595,9 @@ class TinyGsmSequansMonarch
|
|||||||
// SOCK_OPENING = 6,
|
// SOCK_OPENING = 6,
|
||||||
GsmClientSequansMonarch* sock = sockets[mux % TINY_GSM_MUX_COUNT];
|
GsmClientSequansMonarch* sock = sockets[mux % TINY_GSM_MUX_COUNT];
|
||||||
if (sock) {
|
if (sock) {
|
||||||
sock->sock_connected =
|
sock->sock_connected = ((status != SOCK_CLOSED) &&
|
||||||
((status != SOCK_CLOSED) && (status != SOCK_INCOMING) &&
|
(status != SOCK_INCOMING) &&
|
||||||
(status != SOCK_OPENING));
|
(status != SOCK_OPENING));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
waitResponse(); // Should be an OK at the end
|
waitResponse(); // Should be an OK at the end
|
||||||
@@ -624,7 +626,7 @@ class TinyGsmSequansMonarch
|
|||||||
String r5s(r5); r5s.trim();
|
String r5s(r5); r5s.trim();
|
||||||
DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/
|
DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/
|
||||||
data.reserve(64);
|
data.reserve(64);
|
||||||
uint8_t index = 0;
|
uint8_t index = 0;
|
||||||
uint32_t startMillis = millis();
|
uint32_t startMillis = millis();
|
||||||
do {
|
do {
|
||||||
TINY_GSM_YIELD();
|
TINY_GSM_YIELD();
|
||||||
@@ -654,11 +656,11 @@ class TinyGsmSequansMonarch
|
|||||||
index = 5;
|
index = 5;
|
||||||
goto finish;
|
goto finish;
|
||||||
} else if (data.endsWith(GF(GSM_NL "+SQNSRING:"))) {
|
} else if (data.endsWith(GF(GSM_NL "+SQNSRING:"))) {
|
||||||
int8_t mux = streamGetIntBefore(',');
|
int8_t mux = streamGetIntBefore(',');
|
||||||
int16_t len = streamGetIntBefore('\n');
|
int16_t len = streamGetIntBefore('\n');
|
||||||
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT &&
|
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT &&
|
||||||
sockets[mux % TINY_GSM_MUX_COUNT]) {
|
sockets[mux % TINY_GSM_MUX_COUNT]) {
|
||||||
sockets[mux % TINY_GSM_MUX_COUNT]->got_data = true;
|
sockets[mux % TINY_GSM_MUX_COUNT]->got_data = true;
|
||||||
sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = len;
|
sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = len;
|
||||||
}
|
}
|
||||||
data = "";
|
data = "";
|
||||||
@@ -677,9 +679,7 @@ class TinyGsmSequansMonarch
|
|||||||
finish:
|
finish:
|
||||||
if (!index) {
|
if (!index) {
|
||||||
data.trim();
|
data.trim();
|
||||||
if (data.length()) {
|
if (data.length()) { DBG("### Unhandled:", data); }
|
||||||
DBG("### Unhandled:", data);
|
|
||||||
}
|
|
||||||
data = "";
|
data = "";
|
||||||
}
|
}
|
||||||
// data.replace(GSM_NL, "/");
|
// data.replace(GSM_NL, "/");
|
||||||
@@ -717,7 +717,7 @@ class TinyGsmSequansMonarch
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientSequansMonarch* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientSequansMonarch* sockets[TINY_GSM_MUX_COUNT];
|
||||||
const char* gsmNL = GSM_NL;
|
const char* gsmNL = GSM_NL;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SRC_TINYGSMCLIENTSEQUANSMONARCH_H_
|
#endif // SRC_TINYGSMCLIENTSEQUANSMONARCH_H_
|
||||||
|
Reference in New Issue
Block a user