Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: GPS_6Axis_DataLogger_SD_UDP
Fork of C027_Support by
Diff: MDM.h
- Revision:
- 26:07be5faf8925
- Parent:
- 25:4045d02e44f1
- Child:
- 28:4d9509e3b1cf
--- a/MDM.h Tue Apr 08 11:59:28 2014 +0000
+++ b/MDM.h Tue Apr 08 13:52:07 2014 +0000
@@ -52,9 +52,18 @@
virtual int getLine(char* buf, int len) = 0;
virtual int send(const char* buf, int len);
int sendFormated(const char* format, ...);
- typedef int (*_CB)(int type, const char* buf, int len, void* param);
- int waitFinalResp(_CB cb = NULL, void* param = NULL, int timeout_ms = 5000);
-
+
+ typedef int (*_CALLBACKPTR)(int type, const char* buf, int len, void* param);
+ int waitFinalResp(_CALLBACKPTR = NULL,
+ void* param = NULL,
+ int timeout_ms = 5000);
+ template<class T>
+ int waitFinalResp(int (*cb)(int type, const char* buf, int len,
+ T* param),
+ T* param, int timeout_ms = 5000)
+ {
+ return waitFinalResp((_CALLBACKPTR)cb, (void*)param, timeout_ms);
+ }
// network
bool init(const char* pin = NULL);
bool checkNetStatus(Status* info = NULL);
@@ -89,6 +98,7 @@
typedef enum { MODEL_UNKNOWN, MODEL_SARA_G350, MODEL_LISA_U200, MODEL_LISA_C200 } Model;
typedef enum { SIM_UNKNOWN, SIM_PIN, SIM_READY } Sim;
static int _cbATI(int type, const char* buf, int len, Model* model);
+ static int _cbCIMI(int type, const char* buf, int len, char* imsi);
static int _cbUDNSRN(int type, const char* buf, int len, IP* ip);
static int _cbUSOCR(int type, const char* buf, int len, int* socket);
static int _cbUSORD(int type, const char* buf, int len, char* out);
@@ -97,6 +107,9 @@
typedef struct { char* buf; char* num; } CMGRparam;
static int _cbCUSD(int type, const char* buf, int len, char* buf);
static int _cbCMGR(int type, const char* buf, int len, CMGRparam* param);
+ static int _cbCGSN(int type, const char* buf, int len, char* imei);
+ static int _cbGSN(int type, const char* buf, int len, char* imei);
+ static int _cbCCID(int type, const char* buf, int len, char* ccid);
static IP strToIp(const char* str);
IP _ip;
Model _model;
@@ -106,6 +119,9 @@
char _num[32];
char _opr[32];
int _rssi;
+ char _imsi[32];
+ char _imei[32];
+ char _ccid[32];
private:
typedef enum { SOCK_FREE, SOCK_CREATED, SOCK_CONNECTED } SockState;
typedef struct { SockState state; int pending; } SockCtrl;
