Shows how to send and receive SMS messages using a Vodafone USB dongle.

Dependencies:   VodafoneUSBModem mbed-rtos mbed

Committer:
ashleymills
Date:
Thu Nov 08 17:19:31 2012 +0000
Revision:
0:675760d79fa5
Child:
1:38c9e35517ea
Initial commit of SMS basics prog.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 0:675760d79fa5 1 #include "mbed.h"
ashleymills 0:675760d79fa5 2 #include "VodafoneUSBModem.h"
ashleymills 0:675760d79fa5 3
ashleymills 0:675760d79fa5 4 #define TEST_NUMBER "07825608771"
ashleymills 0:675760d79fa5 5 #define MAX_SMS_LEN 256
ashleymills 0:675760d79fa5 6
ashleymills 0:675760d79fa5 7 int main() {
ashleymills 0:675760d79fa5 8 // construct serial object for console monitor
ashleymills 0:675760d79fa5 9 Serial pc(USBTX, USBRX);
ashleymills 0:675760d79fa5 10 pc.baud(115200);
ashleymills 0:675760d79fa5 11
ashleymills 0:675760d79fa5 12 // construct modem object
ashleymills 0:675760d79fa5 13 VodafoneUSBModem modem;
ashleymills 0:675760d79fa5 14
ashleymills 0:675760d79fa5 15 // locals
ashleymills 0:675760d79fa5 16 size_t smCount = 0;
ashleymills 0:675760d79fa5 17 char numBuffer[32], msgBuffer[256];
ashleymills 0:675760d79fa5 18
ashleymills 0:675760d79fa5 19 // send a wake-up SMS
ashleymills 0:675760d79fa5 20 pc.printf("Sending test SMS to %s\r\n",TEST_NUMBER);
ashleymills 0:675760d79fa5 21 if(modem.sendSM(TEST_NUMBER,"Hello!")!=0) {
ashleymills 0:675760d79fa5 22 pc.printf("Error sending test SMS!\r\n");
ashleymills 0:675760d79fa5 23 }
ashleymills 0:675760d79fa5 24
ashleymills 0:675760d79fa5 25 // loop forever printing received SMSs
ashleymills 0:675760d79fa5 26 while(1) {
ashleymills 0:675760d79fa5 27
ashleymills 0:675760d79fa5 28 // get SM count
ashleymills 0:675760d79fa5 29 if(modem.getSMCount(&smCount)!=0) {
ashleymills 0:675760d79fa5 30 pc.printf("Error receiving SMS count!\r\n");
ashleymills 0:675760d79fa5 31 continue;
ashleymills 0:675760d79fa5 32 }
ashleymills 0:675760d79fa5 33
ashleymills 0:675760d79fa5 34 // if SMS in mailbox
ashleymills 0:675760d79fa5 35 if(smCount>0) {
ashleymills 0:675760d79fa5 36
ashleymills 0:675760d79fa5 37 // get SMS and sender
ashleymills 0:675760d79fa5 38 if(modem.getSM(numBuffer,msgBuffer,MAX_SMS_LEN)!=0) {
ashleymills 0:675760d79fa5 39 pc.printf("Error retrieving SMS from mailbox!\r\n");
ashleymills 0:675760d79fa5 40 continue;
ashleymills 0:675760d79fa5 41 }
ashleymills 0:675760d79fa5 42
ashleymills 0:675760d79fa5 43 // print SMS and sender
ashleymills 0:675760d79fa5 44 pc.printf("SMS: \"%s\", From: \"%s\"\r\n",msgBuffer,numBuffer);
ashleymills 0:675760d79fa5 45
ashleymills 0:675760d79fa5 46 }
ashleymills 0:675760d79fa5 47
ashleymills 0:675760d79fa5 48 // wait 1 second
ashleymills 0:675760d79fa5 49 Thread::wait(1000);
ashleymills 0:675760d79fa5 50 }
ashleymills 0:675760d79fa5 51 }