* add C027_Support fork

Fork of C027_Support by u-blox

Revision:
85:dd8f4f0d0ca9
Child:
87:64f54572ea74
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MDMAPN.h	Fri Jun 06 07:51:23 2014 +0000
@@ -0,0 +1,53 @@
+#pragma once 
+
+/* ----------------------------------------------------------------
+   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 to generate the APN string
+#define _APN(apn,username,password) apn "\0" username "\0" password "\0"
+
+//! helper to extract a field from the config string 
+#define _APN_GET(cfg) \
+    *cfg ? cfg : ""; \
+    cfg  += strlen(cfg) + 1
+                    
+//! APN lookup struct
+typedef struct { 
+    const char* mccmnc; //!< mobile country code (MCC) and mobile network code MNC  
+    const char* cfg;    //!< APN configuartion string, use _APN macro to generate
+} APN_t;
+
+//! 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 APN_t 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") },
+    // ...     
+};