aboutsummaryrefslogtreecommitdiff
path: root/libraries/GSM/GSM3MobileMockupProvider.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/GSM/GSM3MobileMockupProvider.h')
-rw-r--r--libraries/GSM/GSM3MobileMockupProvider.h255
1 files changed, 0 insertions, 255 deletions
diff --git a/libraries/GSM/GSM3MobileMockupProvider.h b/libraries/GSM/GSM3MobileMockupProvider.h
deleted file mode 100644
index 59eee41..0000000
--- a/libraries/GSM/GSM3MobileMockupProvider.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
-This file is part of the GSM3 communications library for Arduino
--- Multi-transport communications platform
--- Fully asynchronous
--- Includes code for the Arduino-Telefonica GSM/GPRS Shield V1
--- Voice calls
--- SMS
--- TCP/IP connections
--- HTTP basic clients
-
-This library has been developed by Telefónica Digital - PDI -
-- Physical Internet Lab, as part as its collaboration with
-Arduino and the Open Hardware Community.
-
-September-December 2012
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-The latest version of this library can always be found at
-https://github.com/BlueVia/Official-Arduino
-*/
-#ifndef _GSM3MOBILEMOCKUPPROVIDER_
-#define _GSM3MOBILEMOCKUPPROVIDER_
-
-#include <GSM3MobileNetworkProvider.h>
-#include <GSM3MobileVoiceProvider.h>
-
-class GSM3MobileMockupProvider: public GSM3MobileNetworkProvider
-{
- private:
- // Introducing this status is quite "heavy". But something like this should
- // be added to ShieldV1. Or not.
- // Note, in ShieldV1 there is no "RECEIVINGSMS" status.
- enum GSM3_modemlinest_e { IDLE, WAITINGANSWER, SENDINGSMS};
- GSM3_modemlinest_e lineStatus;
- char* msgExample;
- int msgIndex;
-
- public:
-
- /** Minimum socket
- @return 1
- */
- inline int minSocket(){return 1;};
-
- /** Maximum socket
- @return 8
- */
- inline int maxSocket(){return 8;};
-
- /** Constructor */
- GSM3MobileMockupProvider();
-
- /** Get network status
- @return network status
- */
- inline GSM3_NetworkStatus_t getStatus(){return ERROR;};
-
- /** Get voice call status
- @return call status
- */
- inline GSM3_voiceCall_st getvoiceCallStatus(){return IDLE_CALL;};
-
- /** Get last command status
- @return Returns 0 if last command is still executing, 1 success, >1 error
- */
- int ready();
- inline void closeCommand(int code){};
-
- //Configuration functions.
-
- /** Begin connection
- @param pin PIN code
- @return
- */
- int begin(char* pin=0);
-
- /** Check if is modem alive
- @return 0
- */
- inline int isModemAlive(){return 0;};
-
- /** Shutdown the modem (power off really)
- @return true if successful
- */
- inline bool shutdown(){return false;};
-
- //Call functions
-
- /** Launch a voice call
- @param number Phone number to be called
- @return If asynchronous, returns 0. If synchronous, 1 if success, other if error
- */
- inline int voiceCall(const char* number){return 0;};
-
- /** Answer a voice call
- @return If asynchronous, returns 0. If synchronous, 1 if success, other if error
- */
- inline int answerCall(){return 0;};
-
- /** Hang a voice call
- @return If asynchronous, returns 0. If synchronous, 1 if success, other if error
- */
- inline int hangCall(){return 0;};
-
- /** Retrieve phone number of caller
- @param buffer Buffer for copy phone number
- @param bufsize Buffer size
- @return If asynchronous, returns 0. If synchronous, 1 if success, other if error
- */
- inline int retrieveCallingNumber(char* buffer, int*& bufsize){return 0;};
-
- // SMS functions
-
- /** Begin a SMS to send it
- @param number Destination
- @return error command if it exists
- */
- int beginSMS(const char* number);
-
- /** End SMS
- @return error command if it exists
- */
- int endSMS();
-
- /** Check if SMS available and prepare it to be read
- @return error command if it exists
- */
- int availableSMS();
-
- /** Read a byte but do not advance the buffer header (circular buffer)
- @return character
- */
- int peek();
-
- /** Delete the SMS from Modem memory and proccess answer
- */
- void flushSMS();
-
- /** Read sender number phone
- @param number Buffer for save number phone
- @param nlength Buffer length
- @return 1 success, >1 error
- */
- int remoteSMSNumber(char* number, int nlength);
-
- /** Read one char for SMS buffer (advance circular buffer)
- @return character
- */
- int readSMS();
-
- /** Write a SMS character by character
- @param c Character
- */
- void writeSMS(char c);
-
- // Socket functions
-
- /** Connect to a remote TCP server
- @param server String with IP or server name
- @param port Remote port number
- @param id_socket Local socket number
- @return 0 if command running, 1 if success, otherwise error
- */
- int connectTCPClient(const char* server, int port, int id_socket);
-
- // Attention to parameter rewriting in ShieldV1
- /** Write buffer information into a socket
- @param buf Buffer
- @param size Buffer size
- @param idsocket Socket
- */
- void writeSocket(const uint8_t *buf, size_t size, int idsocket);
-
- // ShieldV1 will have two reading mechanisms:
- // Mechanism 1: Call AT+QIRD for size bytes. Put them in the circular buffer,
- // fill buf. Take care to xon/xoff effect, as we may copy just a part of the
- // incoming bytes.
- /** Read socket and put information in a buffer
- @param buf Buffer
- @param size Buffer size
- @param idsocket Socket
- @return
- */
- int readSocket(uint8_t *buf, size_t size, int idsocket);
-
- // Mechanism 2 in ShieldV1:
- // When called "available()" or "read()" reuse readSocket code to execute
- // QIRD SYNCHRONOUSLY. Ask the modem for 1500 bytes but do not copy them anywhere,
- // leave data in the circular buffer. Put buffer head at the start of received data.
- // Peek() will get a character but will not advance the buffer head.
- // Read() will get one character. XON/XOFF will take care of buffer filling
- // If Read() gets to the end of the QIRD response, execute again QIRD SYNCHRONOUSLY
- // If the user executes flush(), execute read() until there is nothing more to read()
- // (the modem gives no way to empty the socket of incoming data)
-
- /** Check if there are data to be read in socket.
- @param idsocket Local socket number
- @return 0 if command running, 1 if there are data available, 4 if no data, otherwise error
- */
- int availableSocket(int idsocket);
-
- /** Read data (get a character) available in socket
- @param idsocket Socket
- @param advance Determines if advance the buffer head
- @return character
- */
- int readSocket(int idsocket, bool advance=true);
-
- /** Flush socket
- @param idsocket Socket
- */
- void flushSocket(int idsocket);
-
- // This is the same in ShieldV1
- /** Close a socket
- @param idsocket Socket
- @return 0 if command running, 1 if success, otherwise error
- */
- int disconnectTCP(int idsocket);
-
- // TCP Server. Attention. Changing the int*&. We'll receive a buffer for the IP
- // If the pointer ins NULL just forget it
- // I think that opening a server does not occupy a socket. Is that true?
- /** Establish a TCP connection
- @param port Port
- @param localIP IP address
- @param localIPlength IP address size in characters
- @return command error if exists
- */
- int connectTCPServer(int port, char* localIP, int* localIPlength);
-
- // Modem sockets status. Return TRUE if the modem thinks the socket is occupied.
- // This should be detected through an unrequisited response
- /** Get modem status
- @param s Socket
- @return modem status (true if connected)
- */
- bool getSocketModemStatus(uint8_t s);
-
-
-};
-#endif