
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.
Diff: main.cpp
- 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); + } +}