* add C027_Support fork
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;