Merge branch master
This commit is contained in:
25
.travis.yml
25
.travis.yml
@@ -18,23 +18,30 @@ env:
|
||||
- PLATFORMIO_CI_SRC=tools/FactoryReset
|
||||
|
||||
# Arduino test
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM900' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev --board=mayfly"
|
||||
|
||||
# Energia test
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M95' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_MC60' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM800' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM900' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_A6' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_M590' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_ESP8266' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_SIM808' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_UBLOX' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_BG96' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
|
||||
# Disabled due to a bug in Energia readBytes implementation
|
||||
#- PLATFORMIO_CI_SRC=tools/test_build PLATFORMIO_CI_ARGS="--project-option='build_flags=-D TINY_GSM_MODEM_XBEE' --project-option='framework=energia' --board=lplm4f120h5qr"
|
||||
@@ -58,5 +65,7 @@ install:
|
||||
- platformio lib -g install 89 415 1202 1286
|
||||
- platformio lib -g update
|
||||
- platformio lib update
|
||||
- platformio lib list
|
||||
- platformio lib -g list
|
||||
|
||||
script: make travis-build
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "TinyGSM",
|
||||
"version": "0.4.2",
|
||||
"version": "0.4.3",
|
||||
"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",
|
||||
"authors":
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name=TinyGSM
|
||||
version=0.4.2
|
||||
version=0.4.3
|
||||
author=Volodymyr Shymanskyy
|
||||
maintainer=Volodymyr Shymanskyy
|
||||
sentence=A small Arduino library for GPRS modules, that just works.
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 256
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 8
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -125,8 +121,7 @@ public:
|
||||
virtual int read(uint8_t *buf, size_t size) {
|
||||
TINY_GSM_YIELD();
|
||||
size_t cnt = 0;
|
||||
uint32_t _startMillis = millis();
|
||||
while (cnt < size && millis() - _startMillis < _timeout) {
|
||||
while (cnt < size && sock_connected) {
|
||||
size_t chunk = TinyGsmMin(size-cnt, rx.size());
|
||||
if (chunk > 0) {
|
||||
rx.get(buf, chunk);
|
||||
@@ -135,9 +130,8 @@ public:
|
||||
continue;
|
||||
}
|
||||
// TODO: Read directly into user buffer?
|
||||
if (!rx.size() && sock_connected) {
|
||||
if (!rx.size()) {
|
||||
at->maintain();
|
||||
//break;
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
@@ -189,7 +183,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -197,12 +190,11 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
sendAT(GF("+CMEE=0"));
|
||||
sendAT(GF("+CMEE=0")); // Turn of verbose errors
|
||||
waitResponse();
|
||||
|
||||
sendAT(GF("+CMER=3,0,0,2"));
|
||||
sendAT(GF("+CMER=3,0,0,2")); // Set unsolicited result code output destination
|
||||
waitResponse();
|
||||
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -223,10 +215,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
//#define TINY_GSM_USE_HEX
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 64
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 12
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -213,7 +209,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -221,6 +216,7 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -236,10 +232,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
@@ -308,8 +301,9 @@ public:
|
||||
}
|
||||
|
||||
bool poweroff() {
|
||||
sendAT(GF("+QPOWD"));
|
||||
return waitResponse(GF("POWERED DOWN")) == 1; // TODO
|
||||
sendAT(GF("+QPOWD=1"));
|
||||
waitResponse(300); // returns OK first
|
||||
return waitResponse(300, GF("POWERED DOWN")) == 1;
|
||||
}
|
||||
|
||||
bool radioOff() {
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 512
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 5
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -122,8 +118,7 @@ public:
|
||||
virtual int read(uint8_t *buf, size_t size) {
|
||||
TINY_GSM_YIELD();
|
||||
size_t cnt = 0;
|
||||
uint32_t _startMillis = millis();
|
||||
while (cnt < size && millis() - _startMillis < _timeout) {
|
||||
while (cnt < size && sock_connected) {
|
||||
size_t chunk = TinyGsmMin(size-cnt, rx.size());
|
||||
if (chunk > 0) {
|
||||
rx.get(buf, chunk);
|
||||
@@ -132,9 +127,8 @@ public:
|
||||
continue;
|
||||
}
|
||||
// TODO: Read directly into user buffer?
|
||||
if (!rx.size() && sock_connected) {
|
||||
if (!rx.size()) {
|
||||
at->maintain();
|
||||
//break;
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
@@ -206,7 +200,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -222,6 +215,7 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -236,10 +230,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
@@ -297,7 +288,10 @@ public:
|
||||
return init();
|
||||
}
|
||||
|
||||
bool poweroff() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
bool poweroff() {
|
||||
sendAT(GF("+GSLP=0")); // Power down indefinitely - until manually reset!
|
||||
return waitResponse() == 1;
|
||||
}
|
||||
|
||||
bool radioOff() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 256
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 2
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -122,8 +118,7 @@ public:
|
||||
virtual int read(uint8_t *buf, size_t size) {
|
||||
TINY_GSM_YIELD();
|
||||
size_t cnt = 0;
|
||||
uint32_t _startMillis = millis();
|
||||
while (cnt < size && millis() - _startMillis < _timeout) {
|
||||
while (cnt < size && sock_connected) {
|
||||
size_t chunk = TinyGsmMin(size-cnt, rx.size());
|
||||
if (chunk > 0) {
|
||||
rx.get(buf, chunk);
|
||||
@@ -132,9 +127,8 @@ public:
|
||||
continue;
|
||||
}
|
||||
// TODO: Read directly into user buffer?
|
||||
if (!rx.size() && sock_connected) {
|
||||
if (!rx.size()) {
|
||||
at->maintain();
|
||||
//break;
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
@@ -186,7 +180,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -198,7 +191,7 @@ public:
|
||||
sendAT(GF("+CMEE=2"));
|
||||
waitResponse();
|
||||
#endif
|
||||
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -214,10 +207,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
//#define TINY_GSM_USE_HEX
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 64
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 6
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -137,7 +133,7 @@ public:
|
||||
// TODO: Read directly into user buffer?
|
||||
at->maintain();
|
||||
if (sock_available > 0) {
|
||||
at->modemRead(rx.free(), mux);
|
||||
sock_available -= at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@@ -213,7 +209,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -225,7 +220,7 @@ public:
|
||||
sendAT(GF("+CMEE=2"));
|
||||
waitResponse();
|
||||
#endif
|
||||
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -241,10 +236,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
@@ -316,8 +308,8 @@ public:
|
||||
}
|
||||
|
||||
bool poweroff() {
|
||||
sendAT(GF("+QPOWD"));
|
||||
return waitResponse(GF("POWERED DOWN")) == 1; // TODO
|
||||
sendAT(GF("+QPOWD=1"));
|
||||
return waitResponse(300, GF("NORMAL POWER DOWN")) == 1;
|
||||
}
|
||||
|
||||
bool radioOff() {
|
||||
@@ -329,6 +321,8 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool sleepEnable(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
|
||||
/*
|
||||
* SIM card functions
|
||||
*/
|
||||
@@ -644,14 +638,11 @@ public:
|
||||
protected:
|
||||
|
||||
bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) {
|
||||
sendAT(GF("+QIOPEN="), GF("\"TCP"), GF("\",\""), host, GF("\","), port);
|
||||
sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port);
|
||||
int rsp = waitResponse(75000L,
|
||||
GF("CONNECT OK" GSM_NL),
|
||||
GF("CONNECT FAIL" GSM_NL),
|
||||
GF("ALREADY CONNECT" GSM_NL));
|
||||
if ( rsp != 1 ) {
|
||||
return false;
|
||||
}
|
||||
return (1 == rsp);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
//#define TINY_GSM_USE_HEX
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 64
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 6
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -141,7 +137,7 @@ public:
|
||||
// TODO: Read directly into user buffer?
|
||||
at->maintain();
|
||||
if (sock_available > 0) {
|
||||
at->modemRead(rx.free(), mux);
|
||||
sock_available -= at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@@ -217,7 +213,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -227,6 +222,7 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -247,10 +243,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
@@ -350,6 +343,8 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
bool sleepEnable(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
|
||||
/*
|
||||
* SIM card functions
|
||||
*/
|
||||
@@ -671,14 +666,11 @@ public:
|
||||
protected:
|
||||
|
||||
bool modemConnect(const char* host, uint16_t port, uint8_t mux, bool ssl = false) {
|
||||
sendAT(GF("+QIOPEN="), GF("\"TCP"), GF("\",\""), host, GF("\","), port);
|
||||
sendAT(GF("+QIOPEN="), mux, GF("\"TCP"), GF("\",\""), host, GF("\","), port);
|
||||
int rsp = waitResponse(75000L,
|
||||
GF("CONNECT OK" GSM_NL),
|
||||
GF("CONNECT FAIL" GSM_NL),
|
||||
GF("ALREADY CONNECT" GSM_NL));
|
||||
if ( rsp != 1 ) {
|
||||
return false;
|
||||
}
|
||||
return (1 == rsp);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
//#define TINY_GSM_USE_HEX
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 64
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 5
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -150,7 +146,7 @@ public:
|
||||
// TODO: Read directly into user buffer?
|
||||
at->maintain();
|
||||
if (sock_available > 0) {
|
||||
at->modemRead(rx.free(), mux);
|
||||
sock_available -= at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@@ -227,7 +223,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -237,6 +232,7 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
getSimStatus();
|
||||
return true;
|
||||
}
|
||||
@@ -262,10 +258,7 @@ public:
|
||||
//streamWrite(GF("AAAAA" GSM_NL)); // TODO: extra A's to help detect the baud rate
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
|
||||
//#define TINY_GSM_DEBUG Serial
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 64
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_MUX_COUNT 5
|
||||
|
||||
#include <TinyGsmCommon.h>
|
||||
@@ -212,7 +208,6 @@ public:
|
||||
*/
|
||||
|
||||
bool init(const char* pin = NULL) {
|
||||
DBG(GF("### Modem Defined:"), getModemName());
|
||||
if (!testAT()) {
|
||||
return false;
|
||||
}
|
||||
@@ -220,6 +215,7 @@ public:
|
||||
if (waitResponse() != 1) {
|
||||
return false;
|
||||
}
|
||||
DBG(GF("### Modem:"), getModemName());
|
||||
int ret = getSimStatus();
|
||||
if (ret != SIM_READY && pin != NULL && strlen(pin) > 0) {
|
||||
simUnlock(pin);
|
||||
@@ -228,8 +224,26 @@ public:
|
||||
}
|
||||
|
||||
String getModemName() {
|
||||
sendAT(GF("+CGMI"));
|
||||
String res1;
|
||||
if (waitResponse(1000L, res1) != 1) {
|
||||
return "u-blox Cellular Modem";
|
||||
}
|
||||
res1.replace(GSM_NL "OK" GSM_NL, "");
|
||||
res1.replace(GSM_NL, " ");
|
||||
res1.trim();
|
||||
|
||||
sendAT(GF("+GMM"));
|
||||
String res2;
|
||||
if (waitResponse(1000L, res2) != 1) {
|
||||
return "u-blox Cellular Modem";
|
||||
}
|
||||
res2.replace(GSM_NL "OK" GSM_NL, "");
|
||||
res2.replace(GSM_NL, " ");
|
||||
res2.trim();
|
||||
|
||||
return res1 + String(' ') + res2;
|
||||
}
|
||||
|
||||
void setBaud(unsigned long baud) {
|
||||
sendAT(GF("+IPR="), baud);
|
||||
@@ -238,10 +252,7 @@ public:
|
||||
bool testAT(unsigned long timeout = 10000L) {
|
||||
for (unsigned long start = millis(); millis() - start < timeout; ) {
|
||||
sendAT(GF(""));
|
||||
if (waitResponse(200) == 1) {
|
||||
delay(100);
|
||||
return true;
|
||||
}
|
||||
if (waitResponse(200) == 1) return true;
|
||||
delay(100);
|
||||
}
|
||||
return false;
|
||||
@@ -307,7 +318,10 @@ public:
|
||||
return init();
|
||||
}
|
||||
|
||||
bool poweroff() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
bool poweroff() {
|
||||
sendAT(GF("+CPWROFF"));
|
||||
return waitResponse(40000L) == 1;
|
||||
}
|
||||
|
||||
bool radioOff() {
|
||||
sendAT(GF("+CFUN=0"));
|
||||
@@ -568,8 +582,8 @@ public:
|
||||
protected:
|
||||
|
||||
bool modemConnect(const char* host, uint16_t port, uint8_t* mux, bool ssl = false) {
|
||||
sendAT(GF("+USOCR=6"));
|
||||
if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) {
|
||||
sendAT(GF("+USOCR=6")); // create a socket
|
||||
if (waitResponse(GF(GSM_NL "+USOCR:")) != 1) { // reply is +USOCR: ## of socket created
|
||||
return false;
|
||||
}
|
||||
*mux = stream.readStringUntil('\n').toInt();
|
||||
@@ -588,7 +602,7 @@ protected:
|
||||
//sendAT(GF("+USOSO="), *mux, GF(",6,2,30000"));
|
||||
//waitResponse();
|
||||
|
||||
sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port);
|
||||
sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); // connect on socket
|
||||
int rsp = waitResponse(75000L);
|
||||
return (1 == rsp);
|
||||
}
|
||||
|
||||
@@ -276,9 +276,9 @@ public:
|
||||
{
|
||||
sendAT();
|
||||
if (waitResponse(200) == 1) {
|
||||
exitCommand();
|
||||
return true;
|
||||
}
|
||||
exitCommand();
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
@@ -402,7 +402,9 @@ public:
|
||||
exitCommand();
|
||||
}
|
||||
|
||||
bool poweroff() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
bool poweroff() { // Not supported
|
||||
return false;
|
||||
}
|
||||
|
||||
bool radioOff() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
#define TINY_GSM_YIELD() { delay(0); }
|
||||
#endif
|
||||
|
||||
#if !defined(TINY_GSM_RX_BUFFER)
|
||||
#define TINY_GSM_RX_BUFFER 256
|
||||
#endif
|
||||
|
||||
#define TINY_GSM_ATTR_NOT_AVAILABLE __attribute__((error("Not available on this modem type")))
|
||||
#define TINY_GSM_ATTR_NOT_IMPLEMENTED __attribute__((error("Not implemented")))
|
||||
|
||||
@@ -239,6 +243,7 @@ public:
|
||||
*/
|
||||
|
||||
virtual bool restart() = 0;
|
||||
virtual bool poweroff() = 0;
|
||||
|
||||
/*
|
||||
* SIM card functions - only apply to cellular modems
|
||||
@@ -282,6 +287,7 @@ public:
|
||||
return false;
|
||||
}
|
||||
virtual bool gprsDisconnect() { return false; }
|
||||
virtual bool isGprsConnected() { return false; }
|
||||
|
||||
/*
|
||||
* IP Address functions
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* DO NOT USE THIS - this is just a compilation test!
|
||||
*
|
||||
**************************************************************/
|
||||
#define TINY_GSM_MODEM_SIM800
|
||||
// #define TINY_GSM_MODEM_SIM800
|
||||
|
||||
#include <TinyGsmClient.h>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user