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

Committer:
mfiore
Date:
Tue Sep 02 18:38:55 2014 +0000
Revision:
152:9a2c7ed27744
Parent:
20:6e7eaf4f8634
Wifi: fix compatibility break with old shields by checking for both old and new style responses to "show connection" command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jengbrecht 20:6e7eaf4f8634 1 /* Copyright (C) 2012 mbed.org, MIT License
jengbrecht 20:6e7eaf4f8634 2 *
jengbrecht 20:6e7eaf4f8634 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
jengbrecht 20:6e7eaf4f8634 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
jengbrecht 20:6e7eaf4f8634 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
jengbrecht 20:6e7eaf4f8634 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
jengbrecht 20:6e7eaf4f8634 7 * furnished to do so, subject to the following conditions:
jengbrecht 20:6e7eaf4f8634 8 *
jengbrecht 20:6e7eaf4f8634 9 * The above copyright notice and this permission notice shall be included in all copies or
jengbrecht 20:6e7eaf4f8634 10 * substantial portions of the Software.
jengbrecht 20:6e7eaf4f8634 11 *
jengbrecht 20:6e7eaf4f8634 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
jengbrecht 20:6e7eaf4f8634 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
jengbrecht 20:6e7eaf4f8634 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
jengbrecht 20:6e7eaf4f8634 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
jengbrecht 20:6e7eaf4f8634 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
jengbrecht 20:6e7eaf4f8634 17 */
jengbrecht 20:6e7eaf4f8634 18
jengbrecht 20:6e7eaf4f8634 19 #ifndef TCPSOCKET_H
jengbrecht 20:6e7eaf4f8634 20 #define TCPSOCKET_H
jengbrecht 20:6e7eaf4f8634 21
jengbrecht 20:6e7eaf4f8634 22 #include "Socket.h"
jengbrecht 20:6e7eaf4f8634 23 #include "Endpoint.h"
jengbrecht 20:6e7eaf4f8634 24
jengbrecht 20:6e7eaf4f8634 25 /**
jengbrecht 20:6e7eaf4f8634 26 TCP socket connection
jengbrecht 20:6e7eaf4f8634 27 */
jengbrecht 20:6e7eaf4f8634 28 class TCPSocketConnection: public Socket, public Endpoint {
jengbrecht 20:6e7eaf4f8634 29
jengbrecht 20:6e7eaf4f8634 30 public:
jengbrecht 20:6e7eaf4f8634 31 /** TCP socket connection
jengbrecht 20:6e7eaf4f8634 32 */
jengbrecht 20:6e7eaf4f8634 33 TCPSocketConnection();
jengbrecht 20:6e7eaf4f8634 34
jengbrecht 20:6e7eaf4f8634 35 /** Connects this TCP socket to the server
jengbrecht 20:6e7eaf4f8634 36 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
jengbrecht 20:6e7eaf4f8634 37 \param port The host's port to connect to.
jengbrecht 20:6e7eaf4f8634 38 \return 0 on success, -1 on failure.
jengbrecht 20:6e7eaf4f8634 39 */
jengbrecht 20:6e7eaf4f8634 40 int connect(const char* host, const int port);
jengbrecht 20:6e7eaf4f8634 41
jengbrecht 20:6e7eaf4f8634 42 /** Check if the socket is connected
jengbrecht 20:6e7eaf4f8634 43 \return true if connected, false otherwise.
jengbrecht 20:6e7eaf4f8634 44 */
jengbrecht 20:6e7eaf4f8634 45 bool is_connected(void);
jengbrecht 20:6e7eaf4f8634 46
jengbrecht 20:6e7eaf4f8634 47 /** Send data to the remote host.
jengbrecht 20:6e7eaf4f8634 48 \param data The buffer to send to the host.
jengbrecht 20:6e7eaf4f8634 49 \param length The length of the buffer to send.
jengbrecht 20:6e7eaf4f8634 50 \return the number of written bytes on success (>=0) or -1 on failure
jengbrecht 20:6e7eaf4f8634 51 */
jengbrecht 20:6e7eaf4f8634 52 int send(char* data, int length);
jengbrecht 20:6e7eaf4f8634 53
jengbrecht 20:6e7eaf4f8634 54 /** Send all the data to the remote host.
jengbrecht 20:6e7eaf4f8634 55 \param data The buffer to send to the host.
jengbrecht 20:6e7eaf4f8634 56 \param length The length of the buffer to send.
jengbrecht 20:6e7eaf4f8634 57 \return the number of written bytes on success (>=0) or -1 on failure
jengbrecht 20:6e7eaf4f8634 58 */
jengbrecht 20:6e7eaf4f8634 59 int send_all(char* data, int length);
jengbrecht 20:6e7eaf4f8634 60
jengbrecht 20:6e7eaf4f8634 61 /** Receive data from the remote host.
jengbrecht 20:6e7eaf4f8634 62 \param data The buffer in which to store the data received from the host.
jengbrecht 20:6e7eaf4f8634 63 \param length The maximum length of the buffer.
jengbrecht 20:6e7eaf4f8634 64 \return the number of received bytes on success (>=0) or -1 on failure
jengbrecht 20:6e7eaf4f8634 65 */
jengbrecht 20:6e7eaf4f8634 66 int receive(char* data, int length);
jengbrecht 20:6e7eaf4f8634 67
jengbrecht 20:6e7eaf4f8634 68 /** Receive all the data from the remote host.
jengbrecht 20:6e7eaf4f8634 69 \param data The buffer in which to store the data received from the host.
jengbrecht 20:6e7eaf4f8634 70 \param length The maximum length of the buffer.
jengbrecht 20:6e7eaf4f8634 71 \return the number of received bytes on success (>=0) or -1 on failure
jengbrecht 20:6e7eaf4f8634 72 */
jengbrecht 20:6e7eaf4f8634 73 int receive_all(char* data, int length);
jengbrecht 20:6e7eaf4f8634 74 };
jengbrecht 20:6e7eaf4f8634 75
jengbrecht 20:6e7eaf4f8634 76 #endif