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
C027_Support/Socket/Endpoint.h@0:1ababa0d0c42, 2014-06-04 (annotated)
- Committer:
- ntaka206
- Date:
- Wed Jun 04 02:37:42 2014 +0000
- Revision:
- 0:1ababa0d0c42
Initial
Who changed what in which revision?
User | Revision | Line number | New 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 |