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 /* Copyright (C) 2012 mbed.org, MIT License
ntaka206 0:1ababa0d0c42 2 *
ntaka206 0:1ababa0d0c42 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
ntaka206 0:1ababa0d0c42 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
ntaka206 0:1ababa0d0c42 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
ntaka206 0:1ababa0d0c42 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
ntaka206 0:1ababa0d0c42 7 * furnished to do so, subject to the following conditions:
ntaka206 0:1ababa0d0c42 8 *
ntaka206 0:1ababa0d0c42 9 * The above copyright notice and this permission notice shall be included in all copies or
ntaka206 0:1ababa0d0c42 10 * substantial portions of the Software.
ntaka206 0:1ababa0d0c42 11 *
ntaka206 0:1ababa0d0c42 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
ntaka206 0:1ababa0d0c42 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
ntaka206 0:1ababa0d0c42 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
ntaka206 0:1ababa0d0c42 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
ntaka206 0:1ababa0d0c42 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ntaka206 0:1ababa0d0c42 17 */
ntaka206 0:1ababa0d0c42 18 #ifndef ENDPOINT_H
ntaka206 0:1ababa0d0c42 19 #define ENDPOINT_H
ntaka206 0:1ababa0d0c42 20
ntaka206 0:1ababa0d0c42 21 #include "MDM.h"
ntaka206 0:1ababa0d0c42 22
ntaka206 0:1ababa0d0c42 23 class UDPSocket;
ntaka206 0:1ababa0d0c42 24
ntaka206 0:1ababa0d0c42 25 class Endpoint {
ntaka206 0:1ababa0d0c42 26 friend class UDPSocket;
ntaka206 0:1ababa0d0c42 27 public:
ntaka206 0:1ababa0d0c42 28 Endpoint(void) {
ntaka206 0:1ababa0d0c42 29 _ip[0] = '\0';
ntaka206 0:1ababa0d0c42 30 _port = 0;
ntaka206 0:1ababa0d0c42 31 _mdm = NULL;
ntaka206 0:1ababa0d0c42 32 }
ntaka206 0:1ababa0d0c42 33
ntaka206 0:1ababa0d0c42 34 void reset_address(void) {
ntaka206 0:1ababa0d0c42 35 _ip[0] = '\0';
ntaka206 0:1ababa0d0c42 36 _port = 0;
ntaka206 0:1ababa0d0c42 37 }
ntaka206 0:1ababa0d0c42 38
ntaka206 0:1ababa0d0c42 39 int set_address(const char* host, const int port) {
ntaka206 0:1ababa0d0c42 40 _ip[0] = '\0';
ntaka206 0:1ababa0d0c42 41 _port = 0;
ntaka206 0:1ababa0d0c42 42 if (_mdm == NULL)
ntaka206 0:1ababa0d0c42 43 _mdm = MDMParser::getInstance();
ntaka206 0:1ababa0d0c42 44 if (_mdm == NULL)
ntaka206 0:1ababa0d0c42 45 return -1;
ntaka206 0:1ababa0d0c42 46 // resove the host name (eventually does a dns lookup)
ntaka206 0:1ababa0d0c42 47 MDMParser::IP ip = _mdm->gethostbyname(host);
ntaka206 0:1ababa0d0c42 48 if (ip == NOIP)
ntaka206 0:1ababa0d0c42 49 return -1;
ntaka206 0:1ababa0d0c42 50 sprintf(_ip, IPSTR, IPNUM(ip));
ntaka206 0:1ababa0d0c42 51 _port = port;
ntaka206 0:1ababa0d0c42 52 return 0;
ntaka206 0:1ababa0d0c42 53 }
ntaka206 0:1ababa0d0c42 54
ntaka206 0:1ababa0d0c42 55 char* get_address(void) { return _ip; }
ntaka206 0:1ababa0d0c42 56
ntaka206 0:1ababa0d0c42 57 int get_port(void) { return _port; }
ntaka206 0:1ababa0d0c42 58
ntaka206 0:1ababa0d0c42 59 protected:
ntaka206 0:1ababa0d0c42 60 MDMParser* _mdm;
ntaka206 0:1ababa0d0c42 61 char _ip[17];
ntaka206 0:1ababa0d0c42 62 int _port;
ntaka206 0:1ababa0d0c42 63 };
ntaka206 0:1ababa0d0c42 64
ntaka206 0:1ababa0d0c42 65 #endif