aboutsummaryrefslogtreecommitdiff
path: root/libraries/GSM/GSM3ShieldV1ClientProvider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/GSM/GSM3ShieldV1ClientProvider.cpp')
-rw-r--r--libraries/GSM/GSM3ShieldV1ClientProvider.cpp294
1 files changed, 0 insertions, 294 deletions
diff --git a/libraries/GSM/GSM3ShieldV1ClientProvider.cpp b/libraries/GSM/GSM3ShieldV1ClientProvider.cpp
deleted file mode 100644
index 92d3e85..0000000
--- a/libraries/GSM/GSM3ShieldV1ClientProvider.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-#include <GSM3ShieldV1ClientProvider.h>
-#include <GSM3ShieldV1ModemCore.h>
-
-GSM3ShieldV1ClientProvider::GSM3ShieldV1ClientProvider()
-{
- theGSM3MobileClientProvider=this;
-};
-
-//Response management.
-void GSM3ShieldV1ClientProvider::manageResponse(byte from, byte to)
-{
- switch(theGSM3ShieldV1ModemCore.getOngoingCommand())
- {
- case NONE:
- theGSM3ShieldV1ModemCore.gss.cb.deleteToTheEnd(from);
- break;
- case CONNECTTCPCLIENT:
- connectTCPClientContinue();
- break;
- case FLUSHSOCKET:
- flushSocketContinue();
- break;
- }
-}
-
-//Connect TCP main function.
-int GSM3ShieldV1ClientProvider::connectTCPClient(const char* server, int port, int id_socket)
-{
- theGSM3ShieldV1ModemCore.setPort(port);
- idSocket = id_socket;
-
- theGSM3ShieldV1ModemCore.setPhoneNumber((char*)server);
- theGSM3ShieldV1ModemCore.openCommand(this,CONNECTTCPCLIENT);
- theGSM3ShieldV1ModemCore.registerUMProvider(this);
- connectTCPClientContinue();
- return theGSM3ShieldV1ModemCore.getCommandError();
-}
-
-int GSM3ShieldV1ClientProvider::connectTCPClient(IPAddress add, int port, int id_socket)
-{
- remoteIP=add;
- theGSM3ShieldV1ModemCore.setPhoneNumber(0);
- return connectTCPClient(0, port, id_socket);
-}
-
-//Connect TCP continue function.
-void GSM3ShieldV1ClientProvider::connectTCPClientContinue()
-{
- bool resp;
- // 0: Dot or DNS notation activation
- // 1: Disable SW flow control
- // 2: Waiting for IFC OK
- // 3: Start-up TCP connection "AT+QIOPEN"
- // 4: Wait for connection OK
- // 5: Wait for CONNECT
-
- switch (theGSM3ShieldV1ModemCore.getCommandCounter()) {
- case 1:
- theGSM3ShieldV1ModemCore.genericCommand_rq(PSTR("AT+QIDNSIP="), false);
- if ((theGSM3ShieldV1ModemCore.getPhoneNumber()!=0)&&
- ((*(theGSM3ShieldV1ModemCore.getPhoneNumber())<'0')||((*(theGSM3ShieldV1ModemCore.getPhoneNumber())>'9'))))
- {
- theGSM3ShieldV1ModemCore.print('1');
- theGSM3ShieldV1ModemCore.print('\r');
- }
- else
- {
- theGSM3ShieldV1ModemCore.print('0');
- theGSM3ShieldV1ModemCore.print('\r');
- }
- theGSM3ShieldV1ModemCore.setCommandCounter(2);
- break;
- case 2:
- if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp))
- {
- //Response received
- if(resp)
- {
- // AT+QIOPEN
- theGSM3ShieldV1ModemCore.genericCommand_rq(PSTR("AT+QIOPEN="),false);
- theGSM3ShieldV1ModemCore.print("\"TCP\",\"");
- if(theGSM3ShieldV1ModemCore.getPhoneNumber()!=0)
- {
- theGSM3ShieldV1ModemCore.print(theGSM3ShieldV1ModemCore.getPhoneNumber());
- }
- else
- {
- remoteIP.printTo(theGSM3ShieldV1ModemCore);
- }
- theGSM3ShieldV1ModemCore.print('"');
- theGSM3ShieldV1ModemCore.print(',');
- theGSM3ShieldV1ModemCore.print(theGSM3ShieldV1ModemCore.getPort());
- theGSM3ShieldV1ModemCore.print('\r');
- theGSM3ShieldV1ModemCore.setCommandCounter(3);
- }
- else theGSM3ShieldV1ModemCore.closeCommand(3);
- }
- break;
-
- case 3:
- if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp))
- {
- // Response received
- if(resp)
- {
- // OK Received
- // Great. Go for the next step
- theGSM3ShieldV1ModemCore.setCommandCounter(4);
- }
- else theGSM3ShieldV1ModemCore.closeCommand(3);
- }
- break;
- case 4:
- char auxLocate [12];
- prepareAuxLocate(PSTR("CONNECT\r\n"), auxLocate);
- if(theGSM3ShieldV1ModemCore.genericParse_rsp(resp,auxLocate))
- {
- // Response received
- if(resp)
- {
- // Received CONNECT OK
- // Great. We're done
- theGSM3ShieldV1ModemCore.setStatus(TRANSPARENT_CONNECTED);
- theGSM3ShieldV1ModemCore.theBuffer().chopUntil(auxLocate, true);
- theGSM3ShieldV1ModemCore.closeCommand(1);
- }
- else
- theGSM3ShieldV1ModemCore.closeCommand(3);
- }
- break;
-
- }
-}
-
-//Disconnect TCP main function.
-int GSM3ShieldV1ClientProvider::disconnectTCP(bool client1Server0, int id_socket)
-{
- // id Socket does not really mean anything, in this case we have
- // only one socket running
- theGSM3ShieldV1ModemCore.openCommand(this,DISCONNECTTCP);
-
- // If we are not closed, launch the command
-//[ZZ] if(theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED)
-// {
- delay(1000);
- theGSM3ShieldV1ModemCore.print("+++");
- delay(1000);
- theGSM3ShieldV1ModemCore.genericCommand_rq(PSTR("AT+QICLOSE"));
- theGSM3ShieldV1ModemCore.setStatus(GPRS_READY);
-// }
- // Looks like it runs everytime, so we simply flush to death and go on
- do
- {
- // Empty the local buffer, and tell the modem to XON
- // If meanwhile we receive a DISCONNECT we should detect it as URC.
- theGSM3ShieldV1ModemCore.theBuffer().flush();
- theGSM3ShieldV1ModemCore.gss.spaceAvailable();
- // Give some time for the buffer to refill
- delay(100);
- theGSM3ShieldV1ModemCore.closeCommand(1);
- }while(theGSM3ShieldV1ModemCore.theBuffer().storedBytes()>0);
-
- theGSM3ShieldV1ModemCore.unRegisterUMProvider(this);
- return theGSM3ShieldV1ModemCore.getCommandError();
-}
-
-
-//Write socket first chain main function.
-void GSM3ShieldV1ClientProvider::beginWriteSocket(bool client1Server0, int id_socket)
-{
-}
-
-
-//Write socket next chain function.
-void GSM3ShieldV1ClientProvider::writeSocket(const char* buf)
-{
- if(theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED)
- theGSM3ShieldV1ModemCore.print(buf);
-}
-
-//Write socket character function.
-void GSM3ShieldV1ClientProvider::writeSocket(uint8_t c)
-{
- if(theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED)
- theGSM3ShieldV1ModemCore.print((char)c);
-}
-
-//Write socket last chain main function.
-void GSM3ShieldV1ClientProvider::endWriteSocket()
-{
-}
-
-
-//Available socket main function.
-int GSM3ShieldV1ClientProvider::availableSocket(bool client1Server0, int id_socket)
-{
-
- if(!(theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED))
- theGSM3ShieldV1ModemCore.closeCommand(4);
-
- if(theGSM3ShieldV1ModemCore.theBuffer().storedBytes())
- theGSM3ShieldV1ModemCore.closeCommand(1);
- else
- theGSM3ShieldV1ModemCore.closeCommand(4);
-
- return theGSM3ShieldV1ModemCore.getCommandError();
-}
-
-int GSM3ShieldV1ClientProvider::readSocket()
-{
- char charSocket;
-
- if(theGSM3ShieldV1ModemCore.theBuffer().availableBytes()==0)
- {
- return 0;
- }
-
- charSocket = theGSM3ShieldV1ModemCore.theBuffer().read();
-
- if(theGSM3ShieldV1ModemCore.theBuffer().availableBytes()==100)
- theGSM3ShieldV1ModemCore.gss.spaceAvailable();
-
- return charSocket;
-
-}
-
-//Read socket main function.
-int GSM3ShieldV1ClientProvider::peekSocket()
-{
- return theGSM3ShieldV1ModemCore.theBuffer().peek(0);
-}
-
-
-//Flush SMS main function.
-void GSM3ShieldV1ClientProvider::flushSocket()
-{
- theGSM3ShieldV1ModemCore.openCommand(this,FLUSHSOCKET);
-
- flushSocketContinue();
-}
-
-//Send SMS continue function.
-void GSM3ShieldV1ClientProvider::flushSocketContinue()
-{
- // If we have incomed data
- if(theGSM3ShieldV1ModemCore.theBuffer().storedBytes()>0)
- {
- // Empty the local buffer, and tell the modem to XON
- // If meanwhile we receive a DISCONNECT we should detect it as URC.
- theGSM3ShieldV1ModemCore.theBuffer().flush();
- theGSM3ShieldV1ModemCore.gss.spaceAvailable();
- }
- else
- {
- //We're done
- theGSM3ShieldV1ModemCore.closeCommand(1);
- }
-}
-
-// URC recognize.
-// Yes, we recognize "closes" in client mode
-bool GSM3ShieldV1ClientProvider::recognizeUnsolicitedEvent(byte oldTail)
-{
- char auxLocate [12];
- prepareAuxLocate(PSTR("CLOSED"), auxLocate);
-
- if((theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED) & theGSM3ShieldV1ModemCore.theBuffer().chopUntil(auxLocate, false, false))
- {
- theGSM3ShieldV1ModemCore.setStatus(GPRS_READY);
- theGSM3ShieldV1ModemCore.unRegisterUMProvider(this);
- return true;
- }
-
- return false;
-}
-
-int GSM3ShieldV1ClientProvider::getSocket(int socket)
-{
- return 0;
-}
-
-void GSM3ShieldV1ClientProvider::releaseSocket(int socket)
-{
-
-}
-
-bool GSM3ShieldV1ClientProvider::getStatusSocketClient(uint8_t socket)
-{
- return (theGSM3ShieldV1ModemCore.getStatus()==TRANSPARENT_CONNECTED);
-
-};
-
-
-