diff options
| author | Cristian Maglie <c.maglie@bug.st> | 2013-08-23 15:59:24 +0200 | 
|---|---|---|
| committer | Cristian Maglie <c.maglie@bug.st> | 2013-08-23 15:59:24 +0200 | 
| commit | 540743129b2badb813b703208d121ff14553c147 (patch) | |
| tree | 6fadb4ebce68e1f0cb298a282be135c23fd156ed /libraries/GSM/GSM3ShieldV1ClientProvider.cpp | |
| parent | 073b3ac9d4ae93ac0bb3a91afc65ae9d8f1d5d59 (diff) | |
| parent | 67c84855c2f3ce99b091a756bb2ca1a016260659 (diff) | |
Merge branch 'ide-1.5.x' into dev-ide-1.5.x-discovery
Conflicts:
	app/src/processing/app/Preferences.java
	app/src/processing/app/debug/Uploader.java
Diffstat (limited to 'libraries/GSM/GSM3ShieldV1ClientProvider.cpp')
| -rw-r--r-- | libraries/GSM/GSM3ShieldV1ClientProvider.cpp | 294 | 
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); - -}; - - -  | 
