Browse Source

Added virtual master class

v_master
Sara Damiano 6 years ago
parent
commit
56dca5185b
10 changed files with 149 additions and 79 deletions
  1. +6
    -6
      src/TinyGsmClientA6.h
  2. +6
    -6
      src/TinyGsmClientBG96.h
  3. +6
    -6
      src/TinyGsmClientESP8266.h
  4. +6
    -6
      src/TinyGsmClientM590.h
  5. +6
    -6
      src/TinyGsmClientM95.h
  6. +6
    -31
      src/TinyGsmClientMC60.h
  7. +6
    -6
      src/TinyGsmClientSIM800.h
  8. +6
    -6
      src/TinyGsmClientUBLOX.h
  9. +6
    -6
      src/TinyGsmClientXBee.h
  10. +95
    -0
      src/TinyGsmCommon.h

+ 6
- 6
src/TinyGsmClientA6.h View File

@ -39,7 +39,7 @@ enum RegStatus {
};
class TinyGsmA6
class TinyGsmA6 : public TinyGsmMasterModem
{
public:
@ -182,7 +182,7 @@ public:
#else
TinyGsmA6(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -445,6 +445,10 @@ public:
return (res == 1);
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+CIFSR"));
String res;
@ -457,10 +461,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientBG96.h View File

@ -40,7 +40,7 @@ enum RegStatus {
};
class TinyGsmBG96
class TinyGsmBG96 : public TinyGsmMasterModem
{
public:
@ -206,7 +206,7 @@ public:
#else
TinyGsmBG96(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -467,6 +467,10 @@ public:
return localIP() != 0;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+CGPADDR=1"));
if (waitResponse(10000L, GF(GSM_NL "+CGPADDR:")) != 1) {
@ -480,10 +484,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientESP8266.h View File

@ -39,7 +39,7 @@ enum RegStatus {
class TinyGsmESP8266
class TinyGsmESP8266 : public TinyGsmMasterModem
{
public:
@ -198,7 +198,7 @@ public:
#else
TinyGsmESP8266(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -366,6 +366,10 @@ public:
return retVal;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+CIPSTA_CUR??"));
int res1 = waitResponse(GF("ERROR"), GF("+CWJAP_CUR:"));
@ -377,10 +381,6 @@ public:
return res2;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* GPRS functions
*/


+ 6
- 6
src/TinyGsmClientM590.h View File

@ -39,7 +39,7 @@ enum RegStatus {
};
class TinyGsmM590
class TinyGsmM590 : public TinyGsmMasterModem
{
public:
@ -179,7 +179,7 @@ public:
#else
TinyGsmM590(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -451,6 +451,10 @@ public:
return res == 1;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+XIIC?"));
if (waitResponse(GF(GSM_NL "+XIIC:")) != 1) {
@ -463,10 +467,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientM95.h View File

@ -40,7 +40,7 @@ enum RegStatus {
};
class TinyGsmM95
class TinyGsmM95 : public TinyGsmMasterModem
{
public:
@ -186,7 +186,7 @@ public:
#else
TinyGsmM95(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -470,6 +470,10 @@ public:
return true;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+QILOCIP"));
stream.readStringUntil('\n');
@ -478,10 +482,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Phone Call functions
*/


+ 6
- 31
src/TinyGsmClientMC60.h View File

@ -43,24 +43,10 @@ enum RegStatus {
REG_UNKNOWN = 4,
};
//============================================================================//
//============================================================================//
// Declaration of the TinyGsmMC60 Class
//============================================================================//
//============================================================================//
class TinyGsmMC60
class TinyGsmMC60 : public TinyGsmMasterModem
{
//============================================================================//
//============================================================================//
// The MC60 Internal Client Class
//============================================================================//
//============================================================================//
public:
class GsmClient : public Client
@ -199,12 +185,6 @@ private:
RxFifo rx;
};
//============================================================================//
//============================================================================//
// The MC60 Secure Client
//============================================================================//
//============================================================================//
class GsmClientSecure : public GsmClient
{
@ -225,11 +205,6 @@ public:
}
};
//============================================================================//
//============================================================================//
// The MC60 Modem Functions
//============================================================================//
//============================================================================//
public:
@ -238,7 +213,7 @@ public:
#else
TinyGsmMC60(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -614,6 +589,10 @@ public:
return waitResponse(60000L) == 1;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
@ -624,10 +603,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientSIM800.h View File

@ -46,7 +46,7 @@ enum RegStatus {
//============================================================================//
class TinyGsmSim800
class TinyGsmSim800 : public TinyGsmMasterModem
{
//============================================================================//
@ -228,7 +228,7 @@ public:
#else
TinyGsmSim800(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -602,6 +602,10 @@ public:
return true;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+CIFSR;E0"));
String res;
@ -614,10 +618,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientUBLOX.h View File

@ -40,7 +40,7 @@ enum RegStatus {
};
class TinyGsmUBLOX
class TinyGsmUBLOX : public TinyGsmMasterModem
{
public:
@ -205,7 +205,7 @@ public:
#else
TinyGsmUBLOX(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{
memset(sockets, 0, sizeof(sockets));
}
@ -485,6 +485,10 @@ public:
return localIP() != 0;
}
/*
* IP Address functions
*/
String getLocalIP() {
sendAT(GF("+UPSND=0,0"));
if (waitResponse(GF(GSM_NL "+UPSND:")) != 1) {
@ -499,10 +503,6 @@ public:
return res;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/


+ 6
- 6
src/TinyGsmClientXBee.h View File

@ -45,7 +45,7 @@ enum XBeeType {
};
class TinyGsmXBee
class TinyGsmXBee : public TinyGsmMasterModem
{
public:
@ -211,7 +211,7 @@ public:
#else
TinyGsmXBee(Stream& stream)
#endif
: stream(stream)
: TinyGsmMasterModem(stream), stream(stream)
{}
/*
@ -559,6 +559,10 @@ fail:
return res;
}
/*
* IP Address functions
*/
String getLocalIP() {
if (!commandMode()) return ""; // Return immediately
sendAT(GF("MY"));
@ -570,10 +574,6 @@ fail:
return IPaddr;
}
IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* GPRS functions
*/


+ 95
- 0
src/TinyGsmCommon.h View File

@ -194,4 +194,99 @@ String TinyGsmDecodeHex16bit(String &instr) {
return result;
}
class TinyGsmMasterModem
{
public:
class GsmClient : public Client
{
friend class TinyGsmXBee;
};
public:
#ifdef GSM_DEFAULT_STREAM
TinyGsmMasterModem(Stream& stream = GSM_DEFAULT_STREAM)
#else
TinyGsmMasterModem(Stream& stream)
#endif
: stream(stream)
{}
/*
* Basic functions
*/
virtual bool begin() = 0;
virtual bool init() = 0;
virtual void setBaud(unsigned long baud) = 0;
virtual bool testAT(unsigned long timeout = 10000L) = 0;
virtual void maintain() = 0;
virtual bool factoryDefault() = 0;
virtual String getModemInfo() = 0;
virtual bool hasSSL() = 0;
/*
* Power functions
*/
virtual bool restart() = 0;
/*
* SIM card functions
*/
virtual bool simUnlock(const char *pin) = 0;
virtual String getSimCCID() = 0;
virtual String getIMEI() = 0;
virtual String getOperator() = 0;
/*
* Generic network functions
*/
virtual int getSignalQuality() = 0;
virtual bool isNetworkConnected() = 0;
/*
* WiFi functions
*/
virtual bool networkConnect(const char* ssid, const char* pwd) = 0;
virtual bool networkDisconnect() = 0;
/*
* GPRS functions
*/
virtual bool gprsConnect(const char* apn, const char* user = NULL, const char* pwd = NULL) = 0;
virtual bool gprsDisconnect() = 0;
virtual bool isGprsConnected() = 0;
/*
* IP Address functions
*/
virtual String getLocalIP() = 0;
virtual IPAddress localIP() {
return TinyGsmIpFromString(getLocalIP());
}
/*
* Messaging functions
*/
virtual bool sendSMS(const String& number, const String& text) = 0;
public:
Stream& stream;
};
#endif

Loading…
Cancel
Save