CQ出版 Interface 2014年10月号のC027(MAX7-Q)GPSテスト記事のプログラム。 CQ publishing Interface 2014.10 issue, C027 GPS(MAX-7Q) test program.

Dependencies:   C027 C027_Support mbed

Committer:
ntaka206
Date:
Wed Jun 04 02:37:42 2014 +0000
Revision:
0:1ababa0d0c42
Initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ntaka206 0:1ababa0d0c42 1 #ifndef TCPSOCKET_H
ntaka206 0:1ababa0d0c42 2 #define TCPSOCKET_H
ntaka206 0:1ababa0d0c42 3
ntaka206 0:1ababa0d0c42 4 #include "Socket.h"
ntaka206 0:1ababa0d0c42 5
ntaka206 0:1ababa0d0c42 6 /** TCP socket connection
ntaka206 0:1ababa0d0c42 7 */
ntaka206 0:1ababa0d0c42 8 class TCPSocketConnection: public Socket
ntaka206 0:1ababa0d0c42 9 {
ntaka206 0:1ababa0d0c42 10 friend class TCPSocketServer;
ntaka206 0:1ababa0d0c42 11
ntaka206 0:1ababa0d0c42 12 public:
ntaka206 0:1ababa0d0c42 13 /** TCP socket connection
ntaka206 0:1ababa0d0c42 14 */
ntaka206 0:1ababa0d0c42 15 TCPSocketConnection() {}
ntaka206 0:1ababa0d0c42 16
ntaka206 0:1ababa0d0c42 17 /** Connects this TCP socket to the server
ntaka206 0:1ababa0d0c42 18 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
ntaka206 0:1ababa0d0c42 19 \param port The host's port to connect to.
ntaka206 0:1ababa0d0c42 20 \return 0 on success, -1 on failure.
ntaka206 0:1ababa0d0c42 21 */
ntaka206 0:1ababa0d0c42 22 int connect(const char* host, const int port)
ntaka206 0:1ababa0d0c42 23 {
ntaka206 0:1ababa0d0c42 24 if (_mdm == NULL)
ntaka206 0:1ababa0d0c42 25 _mdm = MDMParser::getInstance();
ntaka206 0:1ababa0d0c42 26 if (_mdm == NULL)
ntaka206 0:1ababa0d0c42 27 return -1;
ntaka206 0:1ababa0d0c42 28
ntaka206 0:1ababa0d0c42 29 if (_socket < 0) {
ntaka206 0:1ababa0d0c42 30 _socket = _mdm->socketSocket(MDMParser::IPPROTO_TCP);
ntaka206 0:1ababa0d0c42 31 if (_socket < 0) {
ntaka206 0:1ababa0d0c42 32 return -1;
ntaka206 0:1ababa0d0c42 33 }
ntaka206 0:1ababa0d0c42 34 }
ntaka206 0:1ababa0d0c42 35
ntaka206 0:1ababa0d0c42 36 _mdm->socketSetBlocking(_socket, _timeout_ms);
ntaka206 0:1ababa0d0c42 37 if (!_mdm->socketConnect(_socket, host, port)) {
ntaka206 0:1ababa0d0c42 38 return -1;
ntaka206 0:1ababa0d0c42 39 }
ntaka206 0:1ababa0d0c42 40 return 0;
ntaka206 0:1ababa0d0c42 41 }
ntaka206 0:1ababa0d0c42 42 /** Check if the socket is connected
ntaka206 0:1ababa0d0c42 43 \return true if connected, false otherwise.
ntaka206 0:1ababa0d0c42 44 */
ntaka206 0:1ababa0d0c42 45 bool is_connected(void) { return _mdm->socketIsConnected(_socket); }
ntaka206 0:1ababa0d0c42 46
ntaka206 0:1ababa0d0c42 47 /** Send data to the remote host.
ntaka206 0:1ababa0d0c42 48 \param data The buffer to send to the host.
ntaka206 0:1ababa0d0c42 49 \param length The length of the buffer to send.
ntaka206 0:1ababa0d0c42 50 \return the number of written bytes on success (>=0) or -1 on failure
ntaka206 0:1ababa0d0c42 51 */
ntaka206 0:1ababa0d0c42 52 int send(char* data, int length) { return _mdm->socketSend(_socket, data, length); }
ntaka206 0:1ababa0d0c42 53
ntaka206 0:1ababa0d0c42 54 /** Send all the data to the remote host.
ntaka206 0:1ababa0d0c42 55 \param data The buffer to send to the host.
ntaka206 0:1ababa0d0c42 56 \param length The length of the buffer to send.
ntaka206 0:1ababa0d0c42 57 \return the number of written bytes on success (>=0) or -1 on failure
ntaka206 0:1ababa0d0c42 58 */
ntaka206 0:1ababa0d0c42 59 int send_all(char* data, int length) { return send(data,length); }
ntaka206 0:1ababa0d0c42 60
ntaka206 0:1ababa0d0c42 61 /** Receive data from the remote host.
ntaka206 0:1ababa0d0c42 62 \param data The buffer in which to store the data received from the host.
ntaka206 0:1ababa0d0c42 63 \param length The maximum length of the buffer.
ntaka206 0:1ababa0d0c42 64 \return the number of received bytes on success (>=0) or -1 on failure
ntaka206 0:1ababa0d0c42 65 */
ntaka206 0:1ababa0d0c42 66 int receive(char* data, int length) { return _mdm->socketRecv(_socket, data, length); }
ntaka206 0:1ababa0d0c42 67
ntaka206 0:1ababa0d0c42 68 /** Receive all the data from the remote host.
ntaka206 0:1ababa0d0c42 69 \param data The buffer in which to store the data received from the host.
ntaka206 0:1ababa0d0c42 70 \param length The maximum length of the buffer.
ntaka206 0:1ababa0d0c42 71 \return the number of received bytes on success (>=0) or -1 on failure
ntaka206 0:1ababa0d0c42 72 */
ntaka206 0:1ababa0d0c42 73 int receive_all(char* data, int length) { return receive(data,length); }
ntaka206 0:1ababa0d0c42 74
ntaka206 0:1ababa0d0c42 75 };
ntaka206 0:1ababa0d0c42 76
ntaka206 0:1ababa0d0c42 77 #endif