v2.9
This commit is contained in:
120
lib/TinyGSM/src/TinyGsmCommon.h
Normal file
120
lib/TinyGSM/src/TinyGsmCommon.h
Normal file
@ -0,0 +1,120 @@
|
||||
/**
|
||||
* @file TinyGsmCommon.h
|
||||
* @author Volodymyr Shymanskyy
|
||||
* @license LGPL-3.0
|
||||
* @copyright Copyright (c) 2016 Volodymyr Shymanskyy
|
||||
* @date Nov 2016
|
||||
*/
|
||||
|
||||
#ifndef SRC_TINYGSMCOMMON_H_
|
||||
#define SRC_TINYGSMCOMMON_H_
|
||||
|
||||
// The current library version number
|
||||
#define TINYGSM_VERSION "0.11.5"
|
||||
|
||||
#if defined(SPARK) || defined(PARTICLE)
|
||||
#include "Particle.h"
|
||||
#elif defined(ARDUINO)
|
||||
#if ARDUINO >= 100
|
||||
#include "Arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(ARDUINO_DASH)
|
||||
#include <ArduinoCompat/Client.h>
|
||||
#else
|
||||
#include <Client.h>
|
||||
#endif
|
||||
|
||||
#ifndef TINY_GSM_YIELD_MS
|
||||
#define TINY_GSM_YIELD_MS 0
|
||||
#endif
|
||||
|
||||
#ifndef TINY_GSM_YIELD
|
||||
#define TINY_GSM_YIELD() \
|
||||
{ delay(TINY_GSM_YIELD_MS); }
|
||||
#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")))
|
||||
|
||||
#if defined(__AVR__) && !defined(__AVR_ATmega4809__)
|
||||
#define TINY_GSM_PROGMEM PROGMEM
|
||||
typedef const __FlashStringHelper* GsmConstStr;
|
||||
#define GFP(x) (reinterpret_cast<GsmConstStr>(x))
|
||||
#define GF(x) F(x)
|
||||
#else
|
||||
#define TINY_GSM_PROGMEM
|
||||
typedef const char* GsmConstStr;
|
||||
#define GFP(x) x
|
||||
#define GF(x) x
|
||||
#endif
|
||||
|
||||
#ifdef TINY_GSM_DEBUG
|
||||
namespace {
|
||||
template <typename T>
|
||||
static void DBG_PLAIN(T last) {
|
||||
TINY_GSM_DEBUG.println(last);
|
||||
}
|
||||
|
||||
template <typename T, typename... Args>
|
||||
static void DBG_PLAIN(T head, Args... tail) {
|
||||
TINY_GSM_DEBUG.print(head);
|
||||
TINY_GSM_DEBUG.print(' ');
|
||||
DBG_PLAIN(tail...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
static void DBG(Args... args) {
|
||||
TINY_GSM_DEBUG.print(GF("["));
|
||||
TINY_GSM_DEBUG.print(millis());
|
||||
TINY_GSM_DEBUG.print(GF("] "));
|
||||
DBG_PLAIN(args...);
|
||||
}
|
||||
} // namespace
|
||||
#else
|
||||
#define DBG_PLAIN(...)
|
||||
#define DBG(...)
|
||||
#endif
|
||||
|
||||
template <class T>
|
||||
const T& TinyGsmMin(const T& a, const T& b) {
|
||||
return (b < a) ? b : a;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const T& TinyGsmMax(const T& a, const T& b) {
|
||||
return (b < a) ? a : b;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
uint32_t TinyGsmAutoBaud(T& SerialAT, int rx,int tx,uint32_t minimum = 9600,
|
||||
uint32_t maximum = 115200) {
|
||||
static uint32_t rates[] = {115200,38400,9600};
|
||||
|
||||
for (uint8_t i = 0; i < sizeof(rates) / sizeof(rates[0]); i++) {
|
||||
uint32_t rate = rates[i];
|
||||
if (rate < minimum || rate > maximum) continue;
|
||||
Serial.println("Trying baud rate12"+String(i)+ "...");
|
||||
Serial.println("Trying baud rate"+String(rate)+"...");
|
||||
SerialAT.begin(rate, SERIAL_8N1, rx, tx);
|
||||
delay(10);
|
||||
for (int j = 0; j < 10; j++) {
|
||||
SerialAT.print("AT\r\n");
|
||||
delay(2000);
|
||||
String input = SerialAT.readString();
|
||||
Serial.println(input);
|
||||
if (input.indexOf("OK") >= 0) {
|
||||
DBG("Modem responded at rate", rate);
|
||||
return rate;
|
||||
}
|
||||
}
|
||||
}
|
||||
SerialAT.begin(minimum, SERIAL_8N1, rx, tx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif // SRC_TINYGSMCOMMON_H_
|
Reference in New Issue
Block a user