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.
Fork of C027_Support_New by
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;