summaryrefslogtreecommitdiff
path: root/libraries/SIM800/SIM800.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/SIM800/SIM800.h')
-rw-r--r--libraries/SIM800/SIM800.h30
1 files changed, 27 insertions, 3 deletions
diff --git a/libraries/SIM800/SIM800.h b/libraries/SIM800/SIM800.h
index 9751302..c7de892 100644
--- a/libraries/SIM800/SIM800.h
+++ b/libraries/SIM800/SIM800.h
@@ -27,6 +27,17 @@ typedef enum {
HTTP_ERROR,
} HTTP_STATES;
+typedef struct {
+ float lat;
+ float lon;
+ uint8_t year; /* year past 2000, e.g. 15 for 2015 */
+ uint8_t month;
+ uint8_t day;
+ uint8_t hour;
+ uint8_t minute;
+ uint8_t second;
+} GSM_LOCATION;
+
class CGPRS_SIM800 {
public:
CGPRS_SIM800():httpState(HTTP_DISABLED) {}
@@ -35,18 +46,31 @@ public:
bool getOperatorName();
bool checkSMS();
int getSignalQuality();
- void httpUninit();
+ bool getLocation(GSM_LOCATION* loc);
+ // initialize HTTP connection
bool httpInit();
+ // terminate HTTP connection
+ void httpUninit();
+ // connect to HTTP server
bool httpConnect(const char* url, const char* args = 0);
// check if HTTP connection is established
// return 0 for in progress, 1 for success, 2 for error
byte httpIsConnected();
+ // read data from HTTP connection
void httpRead();
// check if HTTP connection is established
// return 0 for in progress, -1 for error, number of http payload bytes on success
int httpIsRead();
+ // send AT command and check for expected response
byte sendCommand(const char* cmd, unsigned int timeout = 2000, const char* expected = 0);
+ // send AT command and check for two possible responses
byte sendCommand(const char* cmd, const char* expected1, const char* expected2, unsigned int timeout = 2000);
+ // toggle low-power mode
+ bool sleep(bool enabled)
+ {
+ return sendCommand(enabled ? "AT+CFUN=0" : "AT+CFUN=1");
+ }
+ // check if there is available serial data
bool available()
{
return simser.available();
@@ -56,7 +80,7 @@ public:
private:
byte checkbuffer(const char* expected1, const char* expected2 = 0, unsigned int timeout = 2000);
void purgeSerial();
- byte bytesRecv;
- uint32_t checkTimer;
+ byte m_bytesRecv;
+ uint32_t m_checkTimer;
};