Browse Source

Updates to examples

v_master
Sara Damiano 6 years ago
parent
commit
8fc44de0c7
26 changed files with 123 additions and 62 deletions
  1. +19
    -19
      README.md
  2. +5
    -2
      examples/BlynkClient/BlynkClient.ino
  3. +5
    -2
      examples/FileDownload/FileDownload.ino
  4. +6
    -2
      examples/HttpClient/HttpClient.ino
  5. +11
    -1
      examples/HttpsClient/HttpsClient.ino
  6. +5
    -2
      examples/MqttClient/MqttClient.ino
  7. +6
    -2
      examples/WebClient/WebClient.ino
  8. BIN
      extras/doc/u-blox SARA-G3 DataSheet (UBX-13000993).pdf
  9. +0
    -0
      extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf
  10. BIN
      extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf
  11. BIN
      extras/doc/u-blox SARA-U2 DataSheet (UBX-13005287).pdf
  12. +8
    -6
      library.json
  13. +1
    -1
      library.properties
  14. +2
    -0
      src/TinyGsmClientA6.h
  15. +2
    -0
      src/TinyGsmClientBG96.h
  16. +2
    -0
      src/TinyGsmClientESP8266.h
  17. +2
    -0
      src/TinyGsmClientM590.h
  18. +2
    -0
      src/TinyGsmClientM95.h
  19. +2
    -0
      src/TinyGsmClientMC60.h
  20. +2
    -0
      src/TinyGsmClientSIM800.h
  21. +1
    -0
      src/TinyGsmClientSIM808.h
  22. +2
    -0
      src/TinyGsmClientUBLOX.h
  23. +25
    -19
      src/TinyGsmClientXBee.h
  24. +5
    -2
      tools/AT_Debug/AT_Debug.ino
  25. +5
    -2
      tools/Diagnostics/Diagnostics.ino
  26. +5
    -2
      tools/FactoryReset/FactoryReset.ino

+ 19
- 19
README.md View File

@ -35,31 +35,31 @@ TinyGSM also pulls data gently from the modem (whenever possible), so it can ope
## Features ## Features
Feature \ Modem | SIM8xx | u-Blox | A6/A7/A20 | M590 | ESP8266 | XBee | Quectel M95 |
--- | --- | --- | --- | --- | --- | --- | ----------- |
Feature \ Modem | SIM8xx | u-Blox | A6/A7/A20 | M590 | ESP8266 | XBee | BG96 | M95 | MC60 |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
**Data connections** **Data connections**
TCP (HTTP, MQTT, Blynk, ...) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
UDP | ◌ | ◌ | | | | ◌ | ◌ |
SSL/TLS (HTTPS) | ✔¹ | ✔ | 🅧 | 🅧 | ✔¹ | ✔¹ | |
TCP (HTTP, MQTT, Blynk, ...) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
UDP | ◌ | ◌ | | | | ◌ | ◌ | | |
SSL/TLS (HTTPS) | ✔¹ | ✔ | x | x | ✔ | ✔ | ◌ | | |
**USSD** **USSD**
Sending USSD requests | ✔ | | ✔ | ✔ | 🅧 | | |
Decoding 7,8,16-bit response | ✔ | | ✔ | ✔ | 🅧 | | |
Sending USSD requests | ✔ | | ✔ | ✔ | x | | | | |
Decoding 7,8,16-bit response | ✔ | | ✔ | ✔ | x | | | | |
**SMS** **SMS**
Sending | ✔ | ✔ | ✔ | ✔ | 🅧 | ✔ | ✔ |
Sending Unicode | ✔ | | ◌ | 🅧 | 🅧 | | ? |
Reading | | | | | 🅧 | | ? |
Incoming message event | | | | ? | 🅧 | | |
Sending | ✔ | ✔ | ✔ | ✔ | x | ✔ | ✔ | ✔ | ✔ |
Sending Unicode | ✔ | | ◌ | x | x | | ✔ | ✔ | ✔ |
Reading | | | | | x | | | | |
Incoming message event | | | | ? | x | | | | |
**Calls** **Calls**
Dial, hangup | ✔ | | ✔ | 🅧 | 🅧 | 🅧 | ? |
Receiving calls | ✔ | | ✔ | 🅧 | 🅧 | 🅧 | ? |
Incoming event (RING) | ◌ | | ◌ | 🅧 | 🅧 | 🅧 | ? |
DTMF sending | ✔ | | ✔ | 🅧 | 🅧 | 🅧 | ? |
DTMF decoding | ◌ | | 🅧 | 🅧 | 🅧 | 🅧 | ? |
Dial, hangup | ✔ | | ✔ | x | x | x | | | |
Receiving calls | ✔ | | ✔ | x | x | x | | | |
Incoming event (RING) | ◌ | | ◌ | x | x | x | | | |
DTMF sending | ✔ | | ✔ | x | x | x | | | |
DTMF decoding | ◌ | | x | x | x | x | | | |
**Location** **Location**
GSM location service | ✔ | ✔ | 🅧 | 🅧 | 🅧 | ✔ | 🅧 |
GPS/GNSS | ✔¹ | 🅧 | ◌¹ | 🅧 | 🅧 | 🅧 | 🅧 |
GSM location service | ✔ | ✔ | x | x | x | x | | x | ✔ |
GPS/GNSS | ✔¹ | x | ◌¹ | x | x | x | | x | |
✔ - implemented  ◌ - planned  🅧 - not available on this modem
✔ - implemented  ◌ - planned  x - not available on this modem
¹ - only some device models or firmware revisions have this feature (SIM8xx R14.18, A7, etc.) ¹ - only some device models or firmware revisions have this feature (SIM8xx R14.18, A7, etc.)
## Supported modems ## Supported modems


+ 5
- 2
examples/BlynkClient/BlynkClient.ino View File

@ -30,13 +30,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -95,4 +99,3 @@ void loop()
{ {
Blynk.run(); Blynk.run();
} }

+ 5
- 2
examples/FileDownload/FileDownload.ino View File

@ -15,13 +15,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -204,4 +208,3 @@ void loop() {
delay(1000); delay(1000);
} }
} }

+ 6
- 2
examples/HttpClient/HttpClient.ino View File

@ -16,14 +16,19 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE
// Increase RX buffer if needed // Increase RX buffer if needed
//#define TINY_GSM_RX_BUFFER 512 //#define TINY_GSM_RX_BUFFER 512
@ -157,4 +162,3 @@ void loop() {
delay(1000); delay(1000);
} }
} }

+ 11
- 1
examples/HttpsClient/HttpsClient.ino View File

@ -18,8 +18,19 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808 // #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE
// Increase RX buffer if needed // Increase RX buffer if needed
//#define TINY_GSM_RX_BUFFER 512 //#define TINY_GSM_RX_BUFFER 512
@ -159,4 +170,3 @@ void loop() {
delay(1000); delay(1000);
} }
} }

+ 5
- 2
examples/MqttClient/MqttClient.ino View File

@ -29,13 +29,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -171,4 +175,3 @@ void mqttCallback(char* topic, byte* payload, unsigned int len) {
mqtt.publish(topicLedStatus, ledStatus ? "1" : "0"); mqtt.publish(topicLedStatus, ledStatus ? "1" : "0");
} }
} }

+ 6
- 2
examples/WebClient/WebClient.ino View File

@ -10,14 +10,19 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE
// Increase RX buffer if needed // Increase RX buffer if needed
//#define TINY_GSM_RX_BUFFER 512 //#define TINY_GSM_RX_BUFFER 512
@ -145,4 +150,3 @@ void loop() {
delay(1000); delay(1000);
} }
} }

BIN
extras/doc/u-blox SARA-G3 DataSheet (UBX-13000993).pdf View File


extras/doc/u-blox SARA-R4 AT Commands Manual (UBX-17003787).pdf → extras/doc/u-blox SARA-R4 AT Commands Manual r5 (UBX-17003787).pdf View File


BIN
extras/doc/u-blox SARA-R4 SARA-N4 AT Commands Manual r10 (UBC-17003787).pdf View File


BIN
extras/doc/u-blox SARA-U2 DataSheet (UBX-13005287).pdf View File


+ 8
- 6
library.json View File

@ -1,14 +1,16 @@
{ {
"name": "TinyGSM", "name": "TinyGSM",
"version": "0.3.6",
"version": "0.4.0",
"description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM 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 and wifi modules with AT command interfaces.",
"keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox", "keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox",
"authors": "authors":
{
"name": "Volodymyr Shymanskyy",
"url": "https://github.com/vshymanskyy",
"maintainer": true
},
[
{
"name": "Volodymyr Shymanskyy",
"url": "https://github.com/vshymanskyy"
"maintainer": true
}
],
"repository": "repository":
{ {
"type": "git", "type": "git",


+ 1
- 1
library.properties View File

@ -1,5 +1,5 @@
name=TinyGSM name=TinyGSM
version=0.3.6
version=0.4.0
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.


+ 2
- 0
src/TinyGsmClientA6.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientA6_h #ifndef TinyGsmClientA6_h
#define TinyGsmClientA6_h #define TinyGsmClientA6_h
//#pragma message("TinyGSM: TinyGsmClientA6")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
@ -188,6 +189,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientBG96.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientBG96_h #ifndef TinyGsmClientBG96_h
#define TinyGsmClientBG96_h #define TinyGsmClientBG96_h
//#pragma message("TinyGSM: TinyGsmClientBG96")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
//#define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
@ -212,6 +213,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientESP8266.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientESP8266_h #ifndef TinyGsmClientESP8266_h
#define TinyGsmClientESP8266_h #define TinyGsmClientESP8266_h
//#pragma message("TinyGSM: TinyGsmClientESP8266")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
@ -205,6 +206,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientM590.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientM590_h #ifndef TinyGsmClientM590_h
#define TinyGsmClientM590_h #define TinyGsmClientM590_h
//#pragma message("TinyGSM: TinyGsmClientM590")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
@ -185,6 +186,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientM95.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientM95_h #ifndef TinyGsmClientM95_h
#define TinyGsmClientM95_h #define TinyGsmClientM95_h
//#pragma message("TinyGSM: TinyGsmClientM95")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
//#define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
@ -212,6 +213,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientMC60.h View File

@ -11,6 +11,7 @@
#ifndef TinyGsmClientMC60_h #ifndef TinyGsmClientMC60_h
#define TinyGsmClientMC60_h #define TinyGsmClientMC60_h
//#pragma message("TinyGSM: TinyGsmClientMC60")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
//#define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
@ -216,6 +217,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 2
- 0
src/TinyGsmClientSIM800.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientSIM800_h #ifndef TinyGsmClientSIM800_h
#define TinyGsmClientSIM800_h #define TinyGsmClientSIM800_h
//#pragma message("TinyGSM: TinyGsmClientSIM800")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
//#define TINY_GSM_USE_HEX //#define TINY_GSM_USE_HEX
@ -226,6 +227,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 1
- 0
src/TinyGsmClientSIM808.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientSIM808_h #ifndef TinyGsmClientSIM808_h
#define TinyGsmClientSIM808_h #define TinyGsmClientSIM808_h
//#pragma message("TinyGSM: TinyGsmClientSIM808")
#include <TinyGsmClientSIM800.h> #include <TinyGsmClientSIM800.h>


+ 2
- 0
src/TinyGsmClientUBLOX.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientUBLOX_h #ifndef TinyGsmClientUBLOX_h
#define TinyGsmClientUBLOX_h #define TinyGsmClientUBLOX_h
//#pragma message("TinyGSM: TinyGsmClientUBLOX")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
@ -211,6 +212,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
if (!testAT()) { if (!testAT()) {
return false; return false;
} }


+ 25
- 19
src/TinyGsmClientXBee.h View File

@ -8,6 +8,7 @@
#ifndef TinyGsmClientXBee_h #ifndef TinyGsmClientXBee_h
#define TinyGsmClientXBee_h #define TinyGsmClientXBee_h
//#pragma message("TinyGSM: TinyGsmClientXBee")
//#define TINY_GSM_DEBUG Serial //#define TINY_GSM_DEBUG Serial
@ -215,6 +216,7 @@ public:
*/ */
bool init(const char* pin = NULL) { bool init(const char* pin = NULL) {
DBG(GF("### Modem Defined:"), getModemName());
guardTime = 1100; // Start with a default guard time of 1 second guardTime = 1100; // Start with a default guard time of 1 second
if (!commandMode(10)) return false; // Try up to 10 times for the init if (!commandMode(10)) return false; // Try up to 10 times for the init
@ -229,10 +231,7 @@ public:
if (ret_val) guardTime = 125; if (ret_val) guardTime = 125;
sendAT(GF("HS")); // Get the "Hardware Series"; sendAT(GF("HS")); // Get the "Hardware Series";
String res = readResponse();
char buf[4] = {0,}; // Set up buffer for response
res.toCharArray(buf, 4);
int intRes = strtol(buf, 0, 16);
int intRes = readResponseInt();
beeType = (XBeeType)intRes; beeType = (XBeeType)intRes;
exitCommand(); exitCommand();
@ -299,7 +298,7 @@ public:
if (!commandMode()) return modemInf; // Try up to 10 times for the init if (!commandMode()) return modemInf; // Try up to 10 times for the init
sendAT(GF("HS")); // Get the "Hardware Series" sendAT(GF("HS")); // Get the "Hardware Series"
modemInf += readResponse();
modemInf += readResponseString();
exitCommand(); exitCommand();
return modemInf; return modemInf;
@ -402,7 +401,7 @@ public:
String getSimCCID() { String getSimCCID() {
if (!commandMode()) return ""; // Return immediately if (!commandMode()) return ""; // Return immediately
sendAT(GF("S#")); sendAT(GF("S#"));
String res = readResponse();
String res = readResponseString();
exitCommand(); exitCommand();
return res; return res;
} }
@ -410,7 +409,7 @@ public:
String getIMEI() { String getIMEI() {
if (!commandMode()) return ""; // Return immediately if (!commandMode()) return ""; // Return immediately
sendAT(GF("IM")); sendAT(GF("IM"));
String res = readResponse();
String res = readResponseString();
exitCommand(); exitCommand();
return res; return res;
} }
@ -423,10 +422,7 @@ public:
if (!commandMode()) return REG_UNKNOWN; // Return immediately if (!commandMode()) return REG_UNKNOWN; // Return immediately
sendAT(GF("AI")); sendAT(GF("AI"));
String res = readResponse();
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
int intRes = readResponseInt();
RegStatus stat = REG_UNKNOWN; RegStatus stat = REG_UNKNOWN;
switch (beeType){ switch (beeType){
@ -475,13 +471,18 @@ public:
writeChanges(); writeChanges();
stat = REG_UNKNOWN; stat = REG_UNKNOWN;
} }
else if(intRes == 0x2B) { // 0x2B USB Direct active.
stat = REG_UNKNOWN;
}
else if(intRes == 0x2C) // 0x2C Cellular component is in PSM (power save mode).
stat = REG_UNKNOWN;
else if(intRes == 0x2F) { // 0x2F Bypass mode active. else if(intRes == 0x2F) { // 0x2F Bypass mode active.
sendAT(GF("AP0")); // Set back to transparent mode sendAT(GF("AP0")); // Set back to transparent mode
waitResponse(); waitResponse();
writeChanges(); writeChanges();
stat = REG_UNKNOWN; stat = REG_UNKNOWN;
} }
else if(intRes == 0xFF) // 0xFF Device is currently scanning for the configured SSID.
else if(intRes == 0xFF) // 0xFF Initializing.
stat = REG_SEARCHING; stat = REG_SEARCHING;
else stat = REG_UNKNOWN; else stat = REG_UNKNOWN;
break; break;
@ -495,7 +496,7 @@ public:
String getOperator() { String getOperator() {
if (!commandMode()) return ""; // Return immediately if (!commandMode()) return ""; // Return immediately
sendAT(GF("MN")); sendAT(GF("MN"));
String res = readResponse();
String res = readResponseString();
exitCommand(); exitCommand();
return res; return res;
} }
@ -508,11 +509,8 @@ public:
if (!commandMode()) return 0; // Return immediately if (!commandMode()) return 0; // Return immediately
if (beeType == XBEE_S6B_WIFI) sendAT(GF("LM")); // ask for the "link margin" - the dB above sensitivity if (beeType == XBEE_S6B_WIFI) sendAT(GF("LM")); // ask for the "link margin" - the dB above sensitivity
else sendAT(GF("DB")); // ask for the cell strength in dBm else sendAT(GF("DB")); // ask for the cell strength in dBm
String res = readResponse(); // it works better if we read in as a string
int intRes = readResponseInt();
exitCommand(); exitCommand();
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
if (beeType == XBEE_S6B_WIFI) return -93 + intRes; // the maximum sensitivity is -93dBm if (beeType == XBEE_S6B_WIFI) return -93 + intRes; // the maximum sensitivity is -93dBm
else return -1*intRes; // need to convert to negative number else return -1*intRes; // need to convert to negative number
} }
@ -576,7 +574,7 @@ fail:
sendAT(GF("MY")); sendAT(GF("MY"));
String IPaddr; IPaddr.reserve(16); String IPaddr; IPaddr.reserve(16);
// wait for the response - this response can be very slow // wait for the response - this response can be very slow
IPaddr = readResponse(30000);
IPaddr = readResponseString(30000);
exitCommand(); exitCommand();
IPaddr.trim(); IPaddr.trim();
return IPaddr; return IPaddr;
@ -840,7 +838,7 @@ finish:
waitResponse(); waitResponse();
} }
String readResponse(uint32_t timeout = 1000) {
String readResponseString(uint32_t timeout = 1000) {
TINY_GSM_YIELD(); TINY_GSM_YIELD();
unsigned long startMillis = millis(); unsigned long startMillis = millis();
while (!stream.available() && millis() - startMillis < timeout) {}; while (!stream.available() && millis() - startMillis < timeout) {};
@ -850,6 +848,14 @@ finish:
return res; return res;
} }
int readResponseInt(uint32_t timeout = 1000) {
String res = readResponseString(timeout);
char buf[3] = {0,}; // Set up buffer for response
res.toCharArray(buf, 3);
int intRes = strtol(buf, 0, 16);
return intRes;
}
public: public:
Stream& stream; Stream& stream;


+ 5
- 2
tools/AT_Debug/AT_Debug.ino View File

@ -10,13 +10,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -79,4 +83,3 @@ void loop() {
delay(0); delay(0);
} }
} }

+ 5
- 2
tools/Diagnostics/Diagnostics.ino View File

@ -11,13 +11,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -183,4 +187,3 @@ void loop() {
delay(1000); delay(1000);
} }
} }

+ 5
- 2
tools/FactoryReset/FactoryReset.ino View File

@ -11,13 +11,17 @@
// Select your modem: // Select your modem:
#define TINY_GSM_MODEM_SIM800 #define TINY_GSM_MODEM_SIM800
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM900 // #define TINY_GSM_MODEM_SIM900
// #define TINY_GSM_MODEM_SIM808
// #define TINY_GSM_MODEM_SIM868
// #define TINY_GSM_MODEM_UBLOX // #define TINY_GSM_MODEM_UBLOX
// #define TINY_GSM_MODEM_M95
// #define TINY_GSM_MODEM_BG96 // #define TINY_GSM_MODEM_BG96
// #define TINY_GSM_MODEM_A6 // #define TINY_GSM_MODEM_A6
// #define TINY_GSM_MODEM_A7 // #define TINY_GSM_MODEM_A7
// #define TINY_GSM_MODEM_M590 // #define TINY_GSM_MODEM_M590
// #define TINY_GSM_MODEM_MC60
// #define TINY_GSM_MODEM_MC60E
// #define TINY_GSM_MODEM_ESP8266 // #define TINY_GSM_MODEM_ESP8266
// #define TINY_GSM_MODEM_XBEE // #define TINY_GSM_MODEM_XBEE
@ -67,4 +71,3 @@ void setup() {
void loop() { void loop() {
} }

Loading…
Cancel
Save