Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 54 additions & 20 deletions src/GSMSimGPRS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,15 @@ void GSMSimGPRS::gprsInit(String apn, String user, String password) {
USER = user;
PWD = password;
}
void GSMSimGPRS::gprsInitServer(String server, String port) {
SERVER = server;
PORT = port;
}

// Connect to GPRS Bearer
bool GSMSimGPRS::connect() {
gsm.print(F("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r"));
_readSerial();

if (_buffer.indexOf(F("OK")) != -1) {
gsm.print(F("AT+SAPBR=3,1,\"APN\",\""));
gsm.print(APN);
Expand All @@ -74,28 +78,38 @@ bool GSMSimGPRS::connect() {
_readSerial();
if (_buffer.indexOf(F("\"0.0.0.0\"")) == -1 || _buffer.indexOf(F("ERR")) == -1) {
return true;
}
else {
} else {
return false;
}
}
else {
} else {
return false;
}
}
else {
} else {
return false;
}
}
else {
} else {
return false;
}
}
else {
} else {
return false;
}
} else {
return false;
}
else {
}
bool GSMSimGPRS::gprsSend() { //Dont work. should be 5 packets per second. As far as I understand.
gsm.print(F("AT+CIPSEND\r"));
_readSerial();
if (_buffer.indexOf(F(">")) != -1) {
gsm.print(F("99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11"));
gsm.print(F("\n\x1A\r"));
_readSerial();
if (_buffer.indexOf(F("SEND OK")) != -1) {
return true;
} else {
return true;
}
} else {
return false;
}
}
Expand All @@ -105,8 +119,7 @@ bool GSMSimGPRS::isConnected() {
_readSerial();
if (_buffer.indexOf(F("ERROR")) != -1 || _buffer.indexOf(F("\"0.0.0.0\"")) != -1) {
return false;
}
else {
} else {
return true;
}
}
Expand All @@ -116,26 +129,47 @@ String GSMSimGPRS::getIP() {
_readSerial();
if (_buffer.indexOf(F("ERROR")) != -1 || _buffer.indexOf(F("\"0.0.0.0\"")) != -1) {
return "ERROR:NO_IP";
}
else {
} else {
if (_buffer.indexOf("+SAPBR:") != -1) {
String veri = _buffer.substring(_buffer.indexOf(F(",\""))+2, _buffer.lastIndexOf(F("\"")));
veri.trim();
return veri;
}
else {
} else {
"ERROR:NO_IP_FETCH";
}
}
}
// Specify the address and port of the server
bool GSMSimGPRS::gprsServerConn() {
gsm.print(F("AT+CIPSTART=\"TCP\",\""));
gsm.print(SERVER);
gsm.print(F("\",\""));
gsm.print(PORT);
gsm.print(F("\"\r"));
_readSerial();
if (_buffer.indexOf(F("CONNECT OK")) != -1) {
return true;
} else {
return false;
}
}
// Context deactivation
bool GSMSimGPRS::closeContext() {
gsm.print(F("AT+CIPSHUT\r"));
_readSerial();
if (_buffer.indexOf(F("SHUT OK")) != -1) {
return true;
} else {
return false;
}
}
// Close GPRS Connection
bool GSMSimGPRS::closeConn() {
gsm.print(F("AT+SAPBR=0,1\r"));
_readSerial();
if (_buffer.indexOf(F("OK")) != -1) {
return true;
}
else {
} else {
return false;
}
}
24 changes: 20 additions & 4 deletions src/GSMSimGPRS.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@
#define DEFAULT_GPRS_APN "internet"
#define DEFAULT_GPRS_USER ""
#define DEFAULT_GPRS_PWD ""
#define DEFAULT_GPRS_SERVER ""
#define DEFAULT_GPRS_PORT ""


class GSMSimGPRS : public GSMSim {
Expand All @@ -55,11 +57,13 @@ class GSMSimGPRS : public GSMSim {
String APN;
String USER;
String PWD;
String SERVER;
String PORT;


public :

// Sınıfı Başlatıcı...
// Class Initializer...
GSMSimGPRS(Stream& s) : GSMSim(s) {
RESET_PIN = DEFAULT_RST_PIN;
LED_PIN = DEFAULT_LED_PIN;
Expand All @@ -68,6 +72,9 @@ class GSMSimGPRS : public GSMSim {
APN = DEFAULT_GPRS_APN;
USER = DEFAULT_GPRS_USER;
PWD = DEFAULT_GPRS_PWD;

SERVER = DEFAULT_GPRS_SERVER;
PORT = DEFAULT_GPRS_PORT;
}

GSMSimGPRS(Stream& s, unsigned int resetPin) : GSMSim(s, resetPin) {
Expand All @@ -79,6 +86,9 @@ class GSMSimGPRS : public GSMSim {
APN = DEFAULT_GPRS_APN;
USER = DEFAULT_GPRS_USER;
PWD = DEFAULT_GPRS_PWD;

SERVER = DEFAULT_GPRS_SERVER;
PORT = DEFAULT_GPRS_PORT;
}

GSMSimGPRS(Stream& s, unsigned int resetPin, unsigned int ledPin, bool ledFlag) : GSMSim(s, resetPin, ledPin, ledFlag) {
Expand All @@ -90,21 +100,27 @@ class GSMSimGPRS : public GSMSim {
APN = DEFAULT_GPRS_APN;
USER = DEFAULT_GPRS_USER;
PWD = DEFAULT_GPRS_PWD;

SERVER = DEFAULT_GPRS_SERVER;
PORT = DEFAULT_GPRS_PORT;
}

void gprsInit(String apn);
void gprsInit(String apn, String user, String password);

void gprsInitServer(String server, String port);
// Connect to Bearer
bool connect();

// Connect to server
bool gprsServerConn();
// Send to server
bool gprsSend();//Dont work. should be 5 packets per second. As far as I understand.
// Check connection
bool isConnected();
// get ip address
String getIP();
// close gprs bearer connection
bool closeContext();
bool closeConn();

};

#endif