Cellular library for MTS Socket Modem Arduino Shield devices from Multi-Tech Systems
Dependents: mtsas mtsas mtsas mtsas
Diff: Cellular/UIP.h
- Revision:
- 82:5b33b670adb7
- Parent:
- 67:7c705fe2acec
--- a/Cellular/UIP.h Wed Nov 15 16:53:29 2017 -0600 +++ b/Cellular/UIP.h Mon Feb 19 14:25:58 2018 -0600 @@ -1,97 +1,97 @@ -#ifndef UIP_H -#define UIP_H - -#include <string> -#include <vector> - -#include "MTSBufferedIO.h" -#include "Cellular.h" - -namespace mts -{ - -/** This is a class for communicating with a Multi-Tech Systems SocketModem iCell. The -* SocketModem iCell is a family of carrier certified embedded cellular radio modules with -* a common hardware footprint and AT command set for built in IP-stack functionality. -* This class supports three main types of cellular radio interactions including: -* configuration and status AT command processing, SMS processing, and TCP Socket -* data connections. It should be noted that the radio can not process commands or -* SMS messages while having an open data connection at the same time. The concurrent -* capability may be added in a future release. This class also inherits from IPStack -* providing a common set of commands for communication devices that have an onboard -* IP Stack. It is also integrated with the standard mbed Sockets package and can therefore -* be used seamlessly with clients and services built on top of this interface already within -* the mbed library. -* -* All of the following examples use the Pin Names for the STMicro Nucleo F401RE board coupled with -* the SocketModem Shield Arduino compatible board. Please chage Pin Names accordingly to -* match your hardware configuration. It also assumes the use of RTS/CTS hardware handshaking -* using GPIOs. To disable this you will need to change settings on the radio module and -* and use the MTSSerial class instead of MTSSerialFlowControl. The default baud rate for the -* cellular radio is 115200 bps. -* -* Example code is found under Cellular.h -*/ - -class UIP : public Cellular -{ -public: - /** This static function is used to create or get a reference to a - * Cellular object. Cellular uses the singleton pattern, which means - * that you can only have one existing at a time. The first time you - * call getInstance this method creates a new uninitialized Cellular - * object and returns it. All future calls to this method will return - * a reference to the instance created during the first call. Note that - * you must call init on the returned instance before mnaking any other - * calls. If using this class's bindings to any of the Socket package - * classes like TCPSocketConnection, you must call this method and the - * init method on the returned object first, before even creating the - * other objects. - * - * @returns a reference to the single Cellular object that has been created. - */ - UIP(Radio type); - - /** Destructs a Cellular object and frees all related resources. - */ - ~UIP(); - - virtual bool init(MTSBufferedIO* io); - - // Cell connection based commands derived from CommInterface.h - /** Initiates a PPP connection between the radio and the cell network */ - virtual bool connect(); - - /** Disconnects the PPP connection between the radio and the cell network */ - virtual void disconnect(); - - /** Checks if the radio has a PPP connection established with the cell network - * (Can reach the internet essentially) - */ - virtual bool isConnected(); - - /** Resets the radio, must first close active socket and PPP connections - * to do so - */ - virtual void reset(); - - // TCP and UDP Socket related commands - // For behavior of the following methods refer to IPStack.h documentation - virtual bool open(const std::string& address, unsigned int port, Mode mode); - virtual bool close(bool shutdown); - virtual int read(char* data, int max, int timeout = -1); - virtual int write(const char* data, int length, int timeout = -1); - virtual bool ping(const std::string& address = "8.8.8.8"); - - /** A method for setting the APN - * - * @param apn APN to be passed as a c-string - * @returns the standard AT Code enumeration - */ - virtual Code setApn(const std::string& apn); - -}; - -} - -#endif +#ifndef UIP_H +#define UIP_H + +#include <string> +#include <vector> + +#include "MTSBufferedIO.h" +#include "Cellular.h" + +namespace mts +{ + +/** This is a class for communicating with a Multi-Tech Systems SocketModem iCell. The +* SocketModem iCell is a family of carrier certified embedded cellular radio modules with +* a common hardware footprint and AT command set for built in IP-stack functionality. +* This class supports three main types of cellular radio interactions including: +* configuration and status AT command processing, SMS processing, and TCP Socket +* data connections. It should be noted that the radio can not process commands or +* SMS messages while having an open data connection at the same time. The concurrent +* capability may be added in a future release. This class also inherits from IPStack +* providing a common set of commands for communication devices that have an onboard +* IP Stack. It is also integrated with the standard mbed Sockets package and can therefore +* be used seamlessly with clients and services built on top of this interface already within +* the mbed library. +* +* All of the following examples use the Pin Names for the STMicro Nucleo F401RE board coupled with +* the SocketModem Shield Arduino compatible board. Please chage Pin Names accordingly to +* match your hardware configuration. It also assumes the use of RTS/CTS hardware handshaking +* using GPIOs. To disable this you will need to change settings on the radio module and +* and use the MTSSerial class instead of MTSSerialFlowControl. The default baud rate for the +* cellular radio is 115200 bps. +* +* Example code is found under Cellular.h +*/ + +class UIP : public Cellular +{ +public: + /** This static function is used to create or get a reference to a + * Cellular object. Cellular uses the singleton pattern, which means + * that you can only have one existing at a time. The first time you + * call getInstance this method creates a new uninitialized Cellular + * object and returns it. All future calls to this method will return + * a reference to the instance created during the first call. Note that + * you must call init on the returned instance before mnaking any other + * calls. If using this class's bindings to any of the Socket package + * classes like TCPSocketConnection, you must call this method and the + * init method on the returned object first, before even creating the + * other objects. + * + * @returns a reference to the single Cellular object that has been created. + */ + UIP(Radio type); + + /** Destructs a Cellular object and frees all related resources. + */ + ~UIP(); + + virtual bool init(MTSBufferedIO* io); + + // Cell connection based commands derived from CommInterface.h + /** Initiates a PPP connection between the radio and the cell network */ + virtual bool connect(); + + /** Disconnects the PPP connection between the radio and the cell network */ + virtual void disconnect(); + + /** Checks if the radio has a PPP connection established with the cell network + * (Can reach the internet essentially) + */ + virtual bool isConnected(); + + /** Resets the radio, must first close active socket and PPP connections + * to do so + */ + virtual void reset(); + + // TCP and UDP Socket related commands + // For behavior of the following methods refer to IPStack.h documentation + virtual bool open(const std::string& address, unsigned int port, Mode mode); + virtual bool close(bool shutdown); + virtual int read(char* data, int max, int timeout = -1); + virtual int write(const char* data, int length, int timeout = -1); + virtual bool ping(const std::string& address = "8.8.8.8"); + + /** A method for setting the APN + * + * @param apn APN to be passed as a c-string + * @returns the standard AT Code enumeration + */ + virtual Code setApn(const std::string& apn); + +}; + +} + +#endif