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.cpp
- Revision:
- 23:05a1aeeb5fd9
- Parent:
- 22:29322c22577e
- Child:
- 24:0e287a85ac9e
--- a/MDM.cpp Tue Apr 08 09:17:50 2014 +0000
+++ b/MDM.cpp Tue Apr 08 11:11:20 2014 +0000
@@ -2,7 +2,7 @@
#include <ctype.h>
#include "MDM.h"
-#define TRACE (1)?:printf
+#define TRACE (0)?:printf
//#define DEBUG
#define PROFILE "0" // this is the psd profile used
#define MAX_SIZE 256 // max expected messages
@@ -32,6 +32,7 @@
_net = NET_UNKNOWN;
_ip = 0;
_rssi = 0;
+ *_num = '\0';
for (int socket = 0; socket < sizeof(_sockets)/sizeof(*_sockets); socket++) {
_sockets[socket].state = SOCK_FREE;
_sockets[socket].pending = 0;
@@ -81,11 +82,11 @@
if (type == TYPE_PLUS) {
const char* cmd = buf+3;
int a, b, c, d;
- char s[8];
+ char s[32];
// +CSQ: <rssi>,<qual>
if (sscanf(cmd, "CSQ: %d,%d",&a,&b) == 2) {
- if (a != 99) _rssi = -113 - 2*a; // 0: -113 1: -111 ... 30: -53 dBm with 2 dBm steps
+ if (a != 99) _rssi = -113 + 2*a; // 0: -113 1: -111 ... 30: -53 dBm with 2 dBm steps
//if (b != 99) int qual = b; //
// Socket Specific Command ---------------------------------
// +UUSORD: <socket>,<length>
@@ -145,8 +146,11 @@
// if (a == 0) ; // 0: GSM,
// else if (a == 2) ; // 2: UTRAN
// +CPIN: <code>
- } else if (sscanf(cmd, "CPIN: %8s",s) == 1) {
+ } else if (sscanf(cmd, "CPIN: %7s",s) == 1) {
_sim = (strcmp("READY", s) == 0) ? SIM_READY : SIM_UNKNOWN;
+ // +CNUM: <code>
+ } else if (sscanf(cmd, "CNUM: \"My Number\",\"%31[^\"]\",%d", s, &a) == 2) {
+ if ((a == 129) || (a == 145)) strncpy(_num, s, sizeof(_num));
// +UPSND=<profile_id>,<param_tag>[,<dynamic_param_val>]
} else if (sscanf(cmd, "UPSND: " PROFILE ",0,\"" IPSTR "\"", &a,&b,&c,&d) == 4) {
_ip = IPADR(a,b,c,d);
@@ -313,6 +317,10 @@
sendFormated("AT+CSQ\r\n");
if (OK != waitFinalResp())
return false;
+ if (*_num)
+ TRACE("Phone number: \"%s\"\n", _num);
+ if (_rssi)
+ TRACE("Signal Strength: %d dBm\n", _rssi);
return true;
}
@@ -392,7 +400,7 @@
}
if (!_ip)
return false;
- printf("Got IP address: " IPSTR "\n", IPNUM(_ip));
+ TRACE("Got IP address: " IPSTR "\n", IPNUM(_ip));
return true;
}
