C027_SupportTest_xively_locationで使用しているC027用ライブラリ

Fork of C027_Support by u-blox

下記のプログラム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.

Revision:
29:53d346010624
Parent:
28:4d9509e3b1cf
Child:
30:1a647403171b
--- a/MDM.cpp	Tue Apr 08 14:11:03 2014 +0000
+++ b/MDM.cpp	Tue Apr 08 15:48:16 2014 +0000
@@ -3,7 +3,7 @@
 #include "MDM.h"
 
 #define TRACE           (0)?:printf
-//#define DEBUG         // enable this for AT command debugging
+#define DEBUG         // enable this for AT command debugging
 #define PROFILE         "0"   // this is the psd profile used
 #define MAX_SIZE        256  // max expected messages
 // some helper 
@@ -715,22 +715,25 @@
 }
 
 // ----------------------------------------------------------------
-#if 0
-void _cbCMGL()
+int MDMParser::_cbCPMS(int type, const char* buf, int len, int* num)
 { 
-    //
+    if ((type == TYPE_PLUS) && num) {
+        // AT+CPMS: <used1>,<total1>,<used2>,<total2>,<used3>,<total3>;
+        if (sscanf(buf, "\r\n+CPMS: %d,%*d", num) == 1)
+            /*nothing*/;
+    }
+    return WAIT;
 }
 
 int MDMParser::smsCount(void)
 {
     int num = 0;
-    sendFormated("AT+CMGL=ALL\r\n");
-    if (OK != waitFinalResp(_cbCMGL,&num)) {
-        return false;
+    sendFormated("AT+CPMS=\"ME\"\r\n");
+    if (OK != waitFinalResp(_cbCPMS,&num)) {
+        return 0;
     }
-    return true;
+    return num;
 }
-#endif
 
 bool MDMParser::smsSend(const char* num, const char* buf)
 {