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
...
Revision:
11:b8505cbbd55c
Parent:
10:d2da2028a233
Child:
12:96c7b62c7aaf
--- a/main.cpp	Mon May 05 15:45:31 2014 +0000
+++ b/main.cpp	Wed May 07 15:36:38 2014 +0000
@@ -22,10 +22,21 @@
 */
 #define PASSWORD    NULL 
 
-
 //----------------------------------------------------------------------
+/* This example was tested on C027-U20 and C027-G35 with the on board modem. 
+   
+   Additionally it was tested with a shield where the SARA-G350 RX/TX/PWRON 
+   is connected to D0/D1/D4 and the GPS SCL/SDA is connected D15/D15. In this 
+   configuration the following platforms were tested (it is likely that others 
+   will work as well)
+   - C027-XX.
+   - LPC1549v2 
+   - FRDM-KL25Z 
+   - FRDM-KL46Z
+   - NUCLEO-F401RE
+*/
 #if defined(TARGET_UBLOX_C027) || defined(TARGET_LPC1768)
-  //#define C027_USEONBOARD // remove this if you have a GSM/GPS shield
+  #define C027_USEONBOARD // remove this if you have a GSM/GPS shield
   #ifdef C027_USEONBOARD
     #include "C027.h"
     C027 c027;
@@ -104,11 +115,16 @@
     int ret;
     char buf[512] = "";
 
-    Serial pc(USBTX,USBRX);
-    pc.baud(115200);
+    // only trace if 
+    if ((USBRX!=MDMRXD)&&(USBTX!=MDMTXD)) {
+        Serial pc(USBTX,USBRX);
+        pc.baud(115200);
+    }
+    
+    wait_ms(1000);
     
     TRACE("GSM/GPS Support Example\r\n");
-
+    
 #ifdef C027_USEONBOARD
     // turn on the supplies of the Modem and the GPS
     c027.mdmPower(true);
@@ -120,7 +136,7 @@
     mdmPwrOn = 1;
 #endif
     wait(2);
-
+    
     // Create the GPS object
 #if defined(GPSSCL) && defined(GPSSDA) && defined(GPSADR)
     GPSI2C gps(GPSSDA,GPSSCL,GPSADR);     // use GPSI2C class
@@ -129,13 +145,14 @@
 #else
     #warning "please define the pins for the GPS"
 #endif
+    
     // Create the modem object
     MDMSerial mdm(MDMTXD,MDMRXD,MDMBAUD
 #if DEVICE_SERIAL_FC
                 ,MDMRTS,MDMCTS
 #endif
                 );
-                
+    
     // initialize the modem 
     TRACE("Device Init\r\n");
     MDMParser::DevStatus devStatus;
@@ -203,9 +220,9 @@
     unsigned int i = 0xFFFFFFFF;
     const int wait = 100;
     bool abort = false;
-    DigitalOut led(LED1);
+    //DigitalOut led(LED1);
     while (!abort) {
-        led = !led;        
+    //    led = !led;        
         while ((ret = gps.getMessage(buf, sizeof(buf))) > 0)
         {
             int len = LENGTH(ret);