GSM example program for the SeeedStudio GPRS Shield V2.0, based on UART serial port connectivity (D0/D1 pins). This program uses a GSM library to dial a number, send SMS, read SMS or answer a call.

Dependencies:   GSM mbed

Revision:
0:cd3db55e6652
Child:
1:b22685c4503c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jun 13 22:17:41 2014 +0000
@@ -0,0 +1,57 @@
+#include "mbed.h"
+#include "GSM.h"
+
+#define PHONE_NUMBER            "00xxxxxxxxxxxx"
+
+#define SEND_SMS_TEST           0
+#define CALL_UP_TEST            1
+#define ANSWER_TEST             0
+#define READ_SMS_TEST           0
+
+/** 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 GSM module side)
+ * D0 - RX pin (TX on the GSM module side)
+ * 19200 - GSM baud rate
+ */
+GSM gsm(D1, D0, 19200, PHONE_NUMBER);
+
+void messageHandle(void)
+{        
+     __disable_irq();
+    int messageType = gsm.loopHandle();
+    if(MESSAGE_RING == messageType) {
+        gsm.answer();
+    } else if(MESSAGE_SMS == messageType) {
+        char smsMessage[SMS_MAX_LENGTH];
+        gsm.getSMS(smsMessage);
+    }
+    __enable_irq();
+}
+
+int main(void)
+{
+    while(0 != gsm.init()) {
+        wait(2);
+    }
+
+#if SEND_SMS_TEST
+    gsm.sendSMS(PHONE_NUMBER, "Hello from my GPRS shield");
+#endif
+
+#if CALL_UP_TEST
+    gsm.callUp(PHONE_NUMBER);
+#endif
+
+#if ANSWER_TEST || READ_SMS_TEST
+    gsm.gsmSerial.attach(&messageHandle);
+#endif
+
+    while(1) {
+        wait(1);
+    }
+}