A library for talking to Multi-Tech's Cellular SocketModem Devices.

Dependents:   M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more

Embed: (wiki syntax)

« Back to documentation index

IPStack Class Reference

IPStack Class Reference

This class is a pure virtual class that should be inherited from when implementing a communications device with an onboard IP stack. More...

#include <IPStack.h>

Inherited by Cellular [private, virtual], and Wifi.

Public Types

enum  Mode
 

An enumeration for selecting the Socket Mode of TCP or UDP.

More...

Public Member Functions

virtual bool connect ()=0
 This method is used to connect the IP layer and below for the interface.
virtual void disconnect ()=0
 This method is used to disconnect the IP layer and below of the interface.
virtual bool isConnected ()=0
 This method is used to check if the IP layer of the interface is currently connected.
virtual bool bind (unsigned int port)=0
 This method is used to set the local port for the UDP or TCP socket connection.
virtual bool open (const std::string &address, unsigned int port, Mode mode)=0
 This method is used to open a socket connection with the given parameters.
virtual bool isOpen ()=0
 This method is used to determine if a socket connection is currently open.
virtual bool close ()=0
 This method is used to close a socket connection that is currently open.
virtual int read (char *data, int max, int timeout=-1)=0
 This method is used to read data off of a socket, assuming a valid socket connection is already open.
virtual int write (const char *data, int length, int timeout=-1)=0
 This method is used to write data to a socket, assuming a valid socket connection is already open.
virtual unsigned int readable ()=0
 This method is used to get the number of bytes available to read off the socket.
virtual unsigned int writeable ()=0
 This method is used to get the space available to write bytes to the socket.
virtual void reset ()=0
 This method is used to reset the device that provides the communications capability.

Detailed Description

This class is a pure virtual class that should be inherited from when implementing a communications device with an onboard IP stack.

Examples of this would be a Wi-Fi or Cellular radio with a built in IP stack. Typically the IP functionality in these devices is available through an AT or a similiar command interface. The inheriting class should map the device commands and functionality to the pure virtual methods provided here. There should also be at least one or more calls to setup the communication link specific paramters as an init method for example. This would do things like configure the APN in a cellular radio or set the ssid for a WiFi device, which cannot be accounted for in an abstract class like this one.

Definition at line 34 of file IPStack.h.


Member Enumeration Documentation

enum Mode

An enumeration for selecting the Socket Mode of TCP or UDP.

Definition at line 38 of file IPStack.h.


Member Function Documentation

virtual bool bind ( unsigned int  port ) [pure virtual]

This method is used to set the local port for the UDP or TCP socket connection.

The connection can be made using the open method.

Parameters:
portthe local port of the socket as an int.

Implemented in Cellular, and Wifi.

virtual bool close (  ) [pure virtual]

This method is used to close a socket connection that is currently open.

Returns:
true if successfully closed, otherwise returns false on an error.

Implemented in Cellular, and Wifi.

virtual bool connect (  ) [pure virtual]

This method is used to connect the IP layer and below for the interface.

Required configurations and settings should be done in other calls or an init function.

Returns:
true if the connection was successfully established, otherwise false.

Implemented in Cellular, and Wifi.

virtual void disconnect (  ) [pure virtual]

This method is used to disconnect the IP layer and below of the interface.

This includes any cleanup required before another connection can be made.

Implemented in Cellular, and Wifi.

virtual bool isConnected (  ) [pure virtual]

This method is used to check if the IP layer of the interface is currently connected.

Returns:
true if currently connected, otherwise false.

Implemented in Cellular, and Wifi.

virtual bool isOpen (  ) [pure virtual]

This method is used to determine if a socket connection is currently open.

Returns:
true if the socket is currently open, otherwise false.

Implemented in Cellular, and Wifi.

virtual bool open ( const std::string &  address,
unsigned int  port,
Mode  mode 
) [pure virtual]

This method is used to open a socket connection with the given parameters.

This socket connection is established using the devices built in IP stack. Currently TCP is the only supported mode.

Parameters:
addressis the address you want to connect to in the form of xxx.xxx.xxx.xxx or a URL. If using a URL make sure the device supports DNS and is properly configured for that mode.
portthe remote port you want to connect to.
modean enum that specifies whether this socket connection is type TCP or UDP. Currently only TCP is supported.
Returns:
true if the connection was successfully opened, otherwise false.

Implemented in Cellular.

virtual int read ( char *  data,
int  max,
int  timeout = -1 
) [pure virtual]

This method is used to read data off of a socket, assuming a valid socket connection is already open.

Parameters:
dataa pointer to the data buffer that will be filled with the read data.
maxthe maximum number of bytes to attempt to read, typically the same as the size of the passed in data buffer.
timeoutthe amount of time in milliseconds to wait in trying to read the max number of bytes. If set to -1 the call blocks until it receives the max number of bytes or encounters and error.
Returns:
the number of bytes read and stored in the passed in data buffer. Returns -1 if there was an error in reading.

Implemented in Cellular, and Wifi.

virtual unsigned int readable (  ) [pure virtual]

This method is used to get the number of bytes available to read off the socket.

Returns:
the number of bytes available, 0 if there are no bytes to read.

Implemented in Cellular, and Wifi.

virtual void reset (  ) [pure virtual]

This method is used to reset the device that provides the communications capability.

Note that you may have to wait some time after reset before the device can be used.

Implemented in Cellular, and Wifi.

virtual int write ( const char *  data,
int  length,
int  timeout = -1 
) [pure virtual]

This method is used to write data to a socket, assuming a valid socket connection is already open.

Parameters:
dataa pointer to the data buffer that will be written to the socket.
lengththe size of the data buffer to be written.
timeoutthe amount of time in milliseconds to wait in trying to write the entire number of bytes. If set to -1 the call blocks until it writes all of the bytes or encounters and error.
Returns:
the number of bytes written to the socket's write buffer. Returns -1 if there was an error in writing.

Implemented in Cellular, and Wifi.

virtual unsigned int writeable (  ) [pure virtual]

This method is used to get the space available to write bytes to the socket.

Returns:
the number of bytes that can be written, 0 if unable to write.

Implemented in Cellular, and Wifi.