Example program for the SeeedStudio GPRS Shield V2.0, based on UART serial port connectivity (D0/D1 pins). This program connects to GPRS APN, obtains an IP address and downloads http://mbed.org/media/uploads/mbed_official/hello.txt

Dependencies:   GPRSInterface mbed

Revision:
0:b7a3f482f82c
Child:
1:1204f875bde4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 13 16:45:06 2014 +0000
@@ -0,0 +1,66 @@
+#include "mbed.h"
+#include "GPRSInterface.h"
+
+/** On many platforms USBTX/USBRX overlap with serial on D1/D0 pins and enabling the below will interrupt the communication.
+ *  You can use an LCD display to print the values or store them on an SD card etc.
+ */
+//Serial pc(USBTX, USBRX);
+
+/**
+ * D1 - TX pin (RX on the WiFi side)
+ * D0 - RX pin (TX on the WiFi side)
+ * 115200 - Baud rate
+ * "apn" - APN name
+ * "username" - APN username
+ * "password" - APN passowrd
+ */
+GPRSInterface eth(D1, D0, 115200, "apn", "username", "password");
+
+int main()
+{
+    wait(3);
+    
+    // Initialize the interface.
+    // If no param is passed to init() then DHCP will be used on connect()
+    int s = eth.init();
+    if (s != NULL) {
+        printf(">>> Could not initialise. Halting!\n");
+        exit(0);
+    }
+
+    printf(">>> Get IP address...\n");
+    while (1) {
+        s = eth.connect(); // Connect to network
+
+        if (s == false || s < 0) {
+            printf(">>> Could not connect to network. Retrying!\n");
+            wait(3);
+        } else {
+            break;
+        }
+    }
+    printf(">>> Got IP address: %s\n", eth.getIPAddress());
+
+    // Prepare the http request to mbed.org
+    char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
+    TCPSocketConnection sock;
+    sock.connect("mbed.org", 80);    
+    sock.send_all(http_cmd, sizeof(http_cmd)-1);
+    printf(">>> Sent request to mbed.org\n");
+
+    // Read the response
+    char buffer[300];
+    int ret;
+    while (true) {
+        ret = sock.receive(buffer, sizeof(buffer)-1);
+        if (ret <= 0)
+            break;
+        buffer[ret] = '\0';
+        printf(">>> Received %d chars from mbed.org:\n%s\n", ret, buffer);
+    }
+    sock.close();
+    
+    // Disconnect from network
+    eth.disconnect();
+    return 0;
+}