C027_Support library test

Dependencies:   C027_Support

Dependents:   C027_SupportTest_xively_location software_test_v1

Fork of Seeed_GPRS_Library_HelloWorld by wei zou

When running this example make sure you have:

  • edited the SIM PIN, APN, USER and PASSWORD for you network operator
  • have inserted a SIM card with enough credits
  • the antennas connected
  • have good reception (especially for GPS)
  • installed the mbed CDC drivers if you run windows
  • connected a terminal program, such as teraterm

The example will connect the modem to the network and attach it. I will place a post request to download a file from mbed website. It will do a USSD request and finally wait for incoming SMS. It will try to answer your SMS (try asking "where are you").

You should see a similar output in your preferred console program:

C027 Support Example
Device Init
Device Status:
  Device:       SARA-G350
  Power Save:   Active
  SIM:          Ready
  CCID:         xxxxxxxxxxxxxxxxxxxxxxxxxxx
  IMEI:         xxxxxxxxxxxxxxxxxxx
  IMSI:         xxxxxxxxxxxxxxxxxxx
  Manufacturer: u-blox
  Model:        SARA-G350
  Version:      08.49
Network Check
Network Status:
  Registration:       Home
  Signal Strength:    -87 dBm
  Operator:           Swisscom
  Phone Number:       +41xxxxxxxxxxx
Network Join
  IP Address: xx.xx.xx.xx
Socket Create
Socket Connect
Make a Http Post Request
Socket Send
Socket Recving
Socket 0: 337 bytes pending
Socket 0: 145 bytes pending
Socket 0: closed by remote host
Socket Recv "HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Thu, 10 Apr 2014 13:09:02 GMT
Content-Type: text/plain
Connection: close
Last-Modified: Fri, 27 Jul 2012 13:30:34 GMT
Cache-Control: max-age=36000
Expires: Thu, 10 Apr 2014 20:43:53 GMT
Vary: Accept-Encoding
X-Mystery-Header: 260358892
X-be: web0_prod_sjc
Age: 8709

Hello world!
"
Socket Close
Socket Free
Network Disconnect
Send Ussd Command *#134#
Got Ussd Answer: "UNKNOWN APPLICATION"
Checking SMS and GPS
GPS Location: 47.28xxx 8.56xxx
GPS Location: 47.28xxx 8.56xxx
...
GPS Location: 47.28xxx 8.56xxx
GPS Location: 47.28xxx 8.56xxx
Network Status:
  Registration:       Home
  Signal Strength:    -89 dBm
  Operator:           Swisscom
  Phone Number:       +41xxxxxxxxx
GPS Location: 47.28xxx 8.56xxx
GPS Location: 47.28xxx 8.56xxx
...

Files at this revision

API Documentation at this revision

Comitter:
mazgch
Date:
Fri Dec 12 07:50:45 2014 +0000
Parent:
26:59ed90c2efe0
Child:
28:334263983fcd
Commit message:
update for multi GNSS parsing

Changed in this revision

C027_Support.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/C027_Support.lib	Wed Oct 01 09:19:33 2014 +0000
+++ b/C027_Support.lib	Fri Dec 12 07:50:45 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/teams/ublox/code/C027_Support/#f524fd9aa13d
+http://mbed.org/teams/ublox/code/C027_Support/#e347ed0fab5e
--- a/main.cpp	Wed Oct 01 09:19:33 2014 +0000
+++ b/main.cpp	Fri Dec 12 07:50:45 2014 +0000
@@ -48,7 +48,7 @@
 #endif
     // Create the modem object
     MDMSerial mdm;
-    //mdm.setDebug(4); // enable this for debugging issues 
+    mdm.setDebug(4); // enable this for debugging issues 
     // initialize the modem 
     MDMParser::DevStatus devStatus = {};
     MDMParser::NetStatus netStatus = {};
@@ -86,7 +86,9 @@
 
         // join the internet connection 
         MDMParser::IP ip = mdm.join(APN,USERNAME,PASSWORD);
-        if (ip != NOIP)
+        if (ip == NOIP)
+            printf("Not joined");
+        else
         {
             mdm.dumpIp(ip);
             printf("Make a Http Post Request\r\n");
@@ -193,25 +195,29 @@
             //printf("NMEA: %.*s\r\n", len-2, msg); 
             if ((PROTOCOL(ret) == GPSParser::NMEA) && (len > 6))
             {
-                if (!strncmp("$GPGLL", buf, 6)) {
-                    double la = 0, lo = 0;
-                    char ch;
-                    if (gps.getNmeaAngle(1,buf,len,la) && 
-                        gps.getNmeaAngle(3,buf,len,lo) && 
-                        gps.getNmeaItem(6,buf,len,ch) && ch == 'A')
-                    {
-                        printf("GPS Location: %.5f %.5f\r\n", la, lo); 
-                        sprintf(link, "I am here!\n"
-                                      "https://maps.google.com/?q=%.5f,%.5f", la, lo); 
+                // talker is $GA=Galileo $GB=Beidou $GL=Glonass $GN=Combined $GP=GPS
+                if ((buf[0] == '$') || buf[1] == 'G') {
+                    #define _CHECK_TALKER(s) ((buf[3] == s[0]) && (buf[4] == s[1]) && (buf[5] == s[2]))
+                    if (_CHECK_TALKER("GLL")) {
+                        double la = 0, lo = 0;
+                        char ch;
+                        if (gps.getNmeaAngle(1,buf,len,la) && 
+                            gps.getNmeaAngle(3,buf,len,lo) && 
+                            gps.getNmeaItem(6,buf,len,ch) && ch == 'A')
+                        {
+                            printf("GPS Location: %.5f %.5f\r\n", la, lo); 
+                            sprintf(link, "I am here!\n"
+                                          "https://maps.google.com/?q=%.5f,%.5f", la, lo); 
+                        }
+                    } else if (_CHECK_TALKER("GGA") || _CHECK_TALKER("GNS") ) {
+                        double a = 0; 
+                        if (gps.getNmeaItem(9,buf,len,a)) // altitude msl [m]
+                            printf("GPS Altitude: %.1f\r\n", a); 
+                    } else if (_CHECK_TALKER("VTG")) {
+                        double s = 0; 
+                        if (gps.getNmeaItem(7,buf,len,s)) // speed [km/h]
+                            printf("GPS Speed: %.1f\r\n", s); 
                     }
-                } else if (!strncmp("$GPGGA", buf, 6)) {
-                    double a = 0; 
-                    if (gps.getNmeaItem(9,buf,len,a)) // altitude msl [m]
-                        printf("GPS Altitude: %.1f\r\n", a); 
-                } else if (!strncmp("$GPVTG", buf, 6)) {
-                    double s = 0; 
-                    if (gps.getNmeaItem(7,buf,len,s)) // speed [km/h]
-                        printf("GPS Speed: %.1f\r\n", s); 
                 }
             }
         }
--- a/mbed.bld	Wed Oct 01 09:19:33 2014 +0000
+++ b/mbed.bld	Fri Dec 12 07:50:45 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/4fc01daae5a5
\ No newline at end of file