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.
Diff: MDM.cpp
- Revision:
- 85:dd8f4f0d0ca9
- Parent:
- 84:a05edb010176
- Child:
- 88:135fb4bb7aac
--- a/MDM.cpp Thu Jun 05 15:16:57 2014 +0000
+++ b/MDM.cpp Fri Jun 06 07:51:23 2014 +0000
@@ -4,42 +4,7 @@
#ifdef TARGET_UBLOX_C027
#include "C027_api.h"
#endif
-
-/* ----------------------------------------------------------------
- APN stands for Access Point Name, a setting on your modem or phone
- that identifies an external network your phone can access for data
- (e.g., 3G or 4G Internet service on your phone).
-
- The APN settings can be forced when calling the join function.
- Below is a list of known APNs that us used if no apn config
- is forced. This list could be extended by other settings.
-
- For further reading:
- wiki apn: http://en.wikipedia.org/wiki/Access_Point_Name
- wiki mcc/mnc: http://en.wikipedia.org/wiki/Mobile_country_code
- google: https://www.google.de/search?q=APN+list
----------------------------------------------------------------- */
-//! helper
-#define _APN(a,u,p) a "\0" u "\0" p "\0"
-//! default APN settings used by many networks
-static const char* apndef = _APN("internet",,);
-//! this is a list of special APNs for different network operators
-static const struct { const char* mccmnc; const char* cfg; } apnlut[] = {
-// Germany
- { /*T-Mobile*/ "26201", _APN("internet.t-mobile","t-mobile","tm") },
-// Switzerland
- { /*Swisscom*/ "22801", _APN("gprs.swisscom.ch",,) },
-// USA
- { /*T-Mobile*/ "310026|310260|310490",
- _APN("epc.tmobile.com",,)
- _APN("fast.tmobile.com",,) /*LTE*/ },
- { /*AT&T*/ "310030|310150|310170|310260|310410|310560|310680",
- _APN("phone",,)
- _APN("wap.cingular","WAP@CINGULARGPRS.COM","CINGULAR1")
- _APN("isp.cingular","ISP@CINGULARGPRS.COM","CINGULAR1") },
- // ...
-};
-// ----------------------------------------------------------------
+#include "MDMAPN.h"
#define PROFILE "0" //!< this is the psd profile used
#define MAX_SIZE 128 //!< max expected messages
@@ -740,6 +705,8 @@
config = apndef;
sendFormated("AT+UDOPN=0\r\n");
if ((RESP_OK == waitFinalResp(_cbUDOPN, mccmnc)) && *mccmnc) {
+ TRACE("Lookup APN Settings for network \"%s\" from operator \"%s\"\r\n",
+ mccmnc, _net.opr);
// many carriers use internet without username and password, os use this as default
// now try to lookup the setting for our table
for (int i = 0; i < sizeof(apnlut)/sizeof(*apnlut); i ++) {
@@ -758,13 +725,9 @@
do {
if (config) {
- apn = *config ? config : "";
- config += strlen(config)+1;
- username = *config ? config : "";
- config += strlen(config)+1;
- password = *config ? config : "";
- config += strlen(config)+1;
- if (!*config) config = NULL;
+ apn = _APN_GET(config);
+ username = _APN_GET(config);
+ password = _APN_GET(config);
TRACE("Testing APN Settings(\"%s\",\"%s\",\"%s\")\r\n", apn, username, password);
}
// Set up the APN
@@ -793,7 +756,7 @@
ok = true;
}
}
- } while (config); // maybe use next setting ?
+ } while (config && *config); // maybe use next setting ?
if (!ok) {
ERROR("Your modem APN/password/username may be wrong\r\n");
return NOIP;