catch result of cipopen on 7600

Signed-off-by: Sara Damiano <sdamiano@stroudcenter.org>
This commit is contained in:
Sara Damiano
2020-08-07 16:08:19 -04:00
parent cddd356d0c
commit 31205166a7

View File

@@ -528,25 +528,22 @@ class TinyGsmSim7600 : public TinyGsmModem<TinyGsmSim7600>,
/** /**
* CGNSSMODE: <gnss_mode>,<dpo_mode> * CGNSSMODE: <gnss_mode>,<dpo_mode>
* This command is used to configure GPS, GLONASS, BEIDOU and QZSS support mode. * This command is used to configure GPS, GLONASS, BEIDOU and QZSS support
* 0 : GLONASS * mode. 0 : GLONASS 1 : BEIDOU 2 : GALILEO 3 : QZSS dpo_mode: 1 enable , 0
* 1 : BEIDOU * disable
* 2 : GALILEO
* 3 : QZSS
* dpo_mode: 1 enable , 0 disable
*/ */
String setGNSSModeImpl(uint8_t mode,bool dpo){ String setGNSSModeImpl(uint8_t mode, bool dpo) {
String res; String res;
sendAT(GF("+CGNSSMODE="), mode,",",dpo); sendAT(GF("+CGNSSMODE="), mode, ",", dpo);
if (waitResponse(10000L,res) != 1) { return "";} if (waitResponse(10000L, res) != 1) { return ""; }
res.replace(GSM_NL, ""); res.replace(GSM_NL, "");
res.trim(); res.trim();
return res; return res;
} }
uint8_t getGNSSModeImpl(){ uint8_t getGNSSModeImpl() {
sendAT(GF("+CGNSSMODE?")); sendAT(GF("+CGNSSMODE?"));
if (waitResponse(GF(GSM_NL "+CGNSSMODE:")) != 1) { return 0;} if (waitResponse(GF(GSM_NL "+CGNSSMODE:")) != 1) { return 0; }
return stream.readStringUntil(',').toInt(); return stream.readStringUntil(',').toInt();
} }
@@ -617,8 +614,12 @@ class TinyGsmSim7600 : public TinyGsmModem<TinyGsmSim7600>,
uint32_t timeout_ms = ((uint32_t)timeout_s) * 1000; uint32_t timeout_ms = ((uint32_t)timeout_s) * 1000;
sendAT(GF("+CIPOPEN="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","), sendAT(GF("+CIPOPEN="), mux, ',', GF("\"TCP"), GF("\",\""), host, GF("\","),
port); port);
// The reply is +CIPOPEN: ## of socket created // The reply is OK followed by +CIPOPEN: <link_num>,<err> where <link_num>
// is the mux number and <err> should be 0 if there's no error
if (waitResponse(timeout_ms, GF(GSM_NL "+CIPOPEN:")) != 1) { return false; } if (waitResponse(timeout_ms, GF(GSM_NL "+CIPOPEN:")) != 1) { return false; }
uint8_t opened_mux = streamGetIntBefore(',');
uint8_t opened_result = streamGetIntBefore('\n');
if (opened_mux != mux || opened_result != 0) return false;
return true; return true;
} }
@@ -702,9 +703,7 @@ class TinyGsmSim7600 : public TinyGsmModem<TinyGsmSim7600>,
for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) { for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) {
// +CIPCLOSE:<link0_state>,<link1_state>,...,<link9_state> // +CIPCLOSE:<link0_state>,<link1_state>,...,<link9_state>
bool muxState = stream.parseInt(); bool muxState = stream.parseInt();
if (sockets[muxNo]) { if (sockets[muxNo]) { sockets[muxNo]->sock_connected = muxState; }
sockets[muxNo]->sock_connected = muxState;
}
} }
waitResponse(); // Should be an OK at the end waitResponse(); // Should be an OK at the end
if (!sockets[mux]) return false; if (!sockets[mux]) return false;