C027_SupportTest_xively_locationで使用しているC027用ライブラリ
Fork of C027_Support by
下記のプログラムC027_SupportTest_xively_locationで使用しているC027用ライブラリです。
Import programC027_SupportTest_xively_location
インターフェース2014年10月号のu-blox C027で3G通信する記事で使用したプログラム。 CQ publishing Interface 2014.10 issue, C027 3G test program.
オリジナルのライブラリは下記を参照してください。
Import libraryC027_Support
support library for C027 helper functions for Buffer Pipes, Buffered Serial Port (rtos capable) and GPS parsing. It includes modem APIs for USSD, SMS and Sockets.
Diff: Socket/Socket.h
- Revision:
- 47:9a89e5195721
- Parent:
- 44:9d12223b78ff
- Child:
- 49:8175b2b72d6b
--- a/Socket/Socket.h Tue May 06 06:54:12 2014 +0000 +++ b/Socket/Socket.h Fri May 09 17:43:55 2014 +0000 @@ -9,18 +9,23 @@ public: Socket() { _socket = -1; + _timeout = -1; _mdm = MDMParser::getInstance(); if (_mdm == NULL) { error("Socket constructor error: no modem instance available!\r\n"); } } - void set_blocking(bool blocking, unsigned int timeout=1) { - _mdm->socketSetBlocking(_socket, blocking ? (unsigned int) -1 /* blocking */ : timeout); + void set_blocking(bool blocking, unsigned int timeout=1) { + _timeout = blocking ? (unsigned int) -1 /* blocking */ : timeout; + if (_socket >= 0) { + _mdm->socketSetBlocking(_socket, _timeout); + } } int close() { bool ret = false; + printf("\r\n++++ socket closing\r\n\r\n"); if (_socket >= 0) { ret = _mdm->socketClose(_socket); @@ -30,10 +35,12 @@ return ret ? 0 : -1; } - ~Socket() { close(); } + ~Socket() { printf("\r\n++++ socket free\r\n\r\n"); + close(); } protected: int _socket; + int _timeout; MDMParser* _mdm; };