Browse Source

Add init() function

v_master
Volodymyr Shymanskyy 8 years ago
parent
commit
38dccaadec
1 changed files with 26 additions and 11 deletions
  1. +26
    -11
      TinyGsmClient.h

+ 26
- 11
TinyGsmClient.h View File

@ -35,7 +35,10 @@
#endif #endif
//#define GSM_USE_HEX //#define GSM_USE_HEX
#define GSM_RX_BUFFER 64
#if !defined(GSM_RX_BUFFER)
#define GSM_RX_BUFFER 64
#endif
#define GSM_NL "\r\n" #define GSM_NL "\r\n"
static constexpr char GSM_OK[] GSM_PROGMEM = "OK" GSM_NL; static constexpr char GSM_OK[] GSM_PROGMEM = "OK" GSM_NL;
@ -105,11 +108,7 @@ public:
virtual int available() { virtual int available() {
maintain(); maintain();
size_t res = rx.size();
if (res > 0) {
return res;
}
return sock_available;
return rx.size() + sock_available;
} }
virtual int read(uint8_t *buf, size_t size) { virtual int read(uint8_t *buf, size_t size) {
@ -121,8 +120,14 @@ public:
rx.get(buf, chunk); rx.get(buf, chunk);
buf += chunk; buf += chunk;
cnt += chunk; cnt += chunk;
continue;
}
// TODO: Read directly into user buffer?
maintain();
if (sock_available > 0) {
modemRead(rx.free());
} else { } else {
modemRead(rx.free()); //TODO: min(rx.free(), sock_available)
break;
} }
} }
return cnt; return cnt;
@ -165,7 +170,9 @@ public:
} }
bool restart() { bool restart() {
autoBaud();
if (!autoBaud()) {
return false;
}
sendAT(F("+CFUN=0")); sendAT(F("+CFUN=0"));
if (waitResponse(10000L) != 1) { if (waitResponse(10000L) != 1) {
return false; return false;
@ -182,15 +189,23 @@ public:
return false; return false;
} }
return 1 == waitResponse(60000, F("Ready"));
return waitResponse(60000L, F("Ready" GSM_NL)) == 1;
} }
bool networkConnect(const char* apn, const char* user, const char* pwd) {
autoBaud();
bool init() {
if (!autoBaud()) {
return false;
}
sendAT(F("&FZE0")); // Factory + Reset + Echo Off
return waitResponse() == 1;
// +ICCID
// AT+CPIN?
// AT+CPIN=pin-code // AT+CPIN=pin-code
// AT+CREG? // AT+CREG?
}
bool networkConnect(const char* apn, const char* user, const char* pwd) {
networkDisconnect(); networkDisconnect();
// AT+CGATT? // AT+CGATT?


Loading…
Cancel
Save