Must writeChanges or the XBee can't connect!

This commit is contained in:
Sara Damiano
2019-05-30 16:48:01 -04:00
parent 9fd4a52bc3
commit e7fc1b44eb
4 changed files with 26 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "TinyGSM", "name": "TinyGSM",
"version": "0.7.9", "version": "0.7.10",
"description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.", "description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.",
"keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M",
"authors": "authors":

View File

@@ -1,5 +1,5 @@
name=TinyGSM name=TinyGSM
version=0.7.9 version=0.7.10
author=Volodymyr Shymanskyy author=Volodymyr Shymanskyy
maintainer=Volodymyr Shymanskyy maintainer=Volodymyr Shymanskyy
sentence=A small Arduino library for GPRS modules, that just works. sentence=A small Arduino library for GPRS modules, that just works.

View File

@@ -864,32 +864,37 @@ protected:
bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false, int timeout_s = 75) { bool modemConnect(IPAddress ip, uint16_t port, uint8_t mux = 0, bool ssl = false, int timeout_s = 75) {
savedIP = ip; // Set the newly requested IP address
bool success = true; bool success = true;
uint32_t timeout_ms = ((uint32_t)timeout_s)*1000; uint32_t timeout_ms = ((uint32_t)timeout_s)*1000;
XBEE_COMMAND_START_DECORATOR(5, false) XBEE_COMMAND_START_DECORATOR(5, false)
String host; host.reserve(16);
host += ip[0];
host += ".";
host += ip[1];
host += ".";
host += ip[2];
host += ".";
host += ip[3];
if (ssl) { if (ip != savedIP) { // Can skip almost everything if there's no change in the IP address
sendAT(GF("IP"), 4); // Put in SSL over TCP communication mode savedIP = ip; // Set the newly requested IP address
String host; host.reserve(16);
host += ip[0];
host += ".";
host += ip[1];
host += ".";
host += ip[2];
host += ".";
host += ip[3];
if (ssl) {
sendAT(GF("IP"), 4); // Put in SSL over TCP communication mode
success &= (1 == waitResponse());
} else {
sendAT(GF("IP"), 1); // Put in TCP mode
success &= (1 == waitResponse());
}
sendAT(GF("DL"), host); // Set the "Destination Address Low"
success &= (1 == waitResponse()); success &= (1 == waitResponse());
} else { sendAT(GF("DE"), String(port, HEX)); // Set the destination port
sendAT(GF("IP"), 1); // Put in TCP mode
success &= (1 == waitResponse()); success &= (1 == waitResponse());
success &= writeChanges();
} }
sendAT(GF("DL"), host); // Set the "Destination Address Low"
success &= (1 == waitResponse());
sendAT(GF("DE"), String(port, HEX)); // Set the destination port
success &= (1 == waitResponse());
for (unsigned long start = millis(); millis() - start < timeout_ms; ) { for (unsigned long start = millis(); millis() - start < timeout_ms; ) {
if (modemGetConnected()) { if (modemGetConnected()) {
sockets[mux]->sock_connected = true; sockets[mux]->sock_connected = true;

View File

@@ -10,7 +10,7 @@
#define TinyGsmCommon_h #define TinyGsmCommon_h
// The current library version number // The current library version number
#define TINYGSM_VERSION "0.7.9" #define TINYGSM_VERSION "0.7.10"
#if defined(SPARK) || defined(PARTICLE) #if defined(SPARK) || defined(PARTICLE)
#include "Particle.h" #include "Particle.h"